PHP開発で複数のファイルをMySqlデータベースにアップロードする(1)
前の章では、PHP を使用してファイルをアップロードするチュートリアルを紹介しました。
友達から質問があるでしょう。複数のファイルをデータベースにアップロードするにはどうすればよいですか?
重要な点は、複数のファイルを入力し、[送信] をクリックしてアップロードすることです。その後、すべてのファイルが一緒にアップロードされ、各ファイルに新しいパスが与えられます。

はアイデアを提供します:
最初にアップロードされた各ファイルの情報を取得してカスタム配列に入れます
<?php $uploadFiles = array(); ?>
次にそれをforeachループを通して表示します
<?php
foreach($upfile as $key =>$value) {
foreach($value as $k => $v){
$uploadFiles[$k][$key]=$v;
}
}
print_r($uploadFiles);
?>結果の表示は同様です
<?php /* 这里展示同时上传2个文件信息 Array ( [0] => Array ( [name] => 1.png [type] => image/png [tmp_name] => C:\Windows\php82E9.tmp [error] => 0 [size] => 65646 ) [1] => Array ( [name] => 2.png [type] => image/png [tmp_name] => C:\Windows\php82EA.tmp [error] => 0 [size] => 70463 ) ) */ ?>
最後に、この章では、ファイルの公開に関する制限が判定ループに置かれ、ランダムなファイル名を取得するために、現在の時刻が新しいファイル名のプレフィックスとして使用され、サフィックス名が再結合されることを示します。データベース。
<?php
//上传后的文件名定义(随机获取一个文件名(保持后缀名不变))
$fileinfo = pathinfo($v["name"]);//解析上传文件名字
do{
$newfile = date("Y-m-d,H-i-s") . rand(1000, 9999) . "." . $fileinfo["extension"];
}
while (file_exists($path . $newfile));
?>もちろん、データベーステーブルのリンクとファイルのアップロードも重要な部分です
<?php
$link = mysqli_connect('localhost','username','password') or die("数据库连接失败!");
mysqli_select_db($link,'test');
mysqli_set_charset($link,'utf8');
$filepath = $path.$newfile;
$name = $v['name'];
$size = $v['size'];
$sql = "insert into img(id,name,size,pic) value(null,'$name','$size','$filepath')";
mysqli_query($link,$sql);
mysqli_close($link);
?>
新しいファイル
<?php
$link = mysqli_connect('localhost','username','password') or die("数据库连接失败!");
mysqli_select_db($link,'test');
mysqli_set_charset($link,'utf8');
$filepath = $path.$newfile;
$name = $v['name'];
$size = $v['size'];
$sql = "insert into img(id,name,size,pic) value(null,'$name','$size','$filepath')";
mysqli_query($link,$sql);
mysqli_close($link);
?>
プレビュー
Clear
- おすすめコース
- コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜
このコースを視聴した生徒はこちらも学んでいます
















