PHP开发之多个文件上传到MySql数据库(一)
前面的章节我们介绍了用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);
?>
neue Datei
<?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);
?>
Vorschau
Clear
- Kursempfehlungen
- Kursunterlagen herunterladen
Die Kursunterlagen stehen derzeit nicht zum Download zur Verfügung. Die Mitarbeiter organisieren es derzeit. Bitte schenken Sie diesem Kurs in Zukunft mehr Aufmerksamkeit
Auch Studierende, die diesen Kurs gesehen haben, lernen
Lassen Sie uns kurz über die Gründung eines Unternehmens in PHP sprechen
Kurze Einführung in die Web-Frontend-Entwicklung
Umfangreiche, praktische Tianlongbabu-Entwicklung eines Mini-Version-MVC-Frameworks, das die Enzyklopädie-Website mit peinlichen Dingen imitiert
Erste Schritte mit der praktischen PHP-Entwicklung: Schnelle PHP-Erstellung [Small Business Forum]
Anmeldebestätigung und klassisches Message Board
Wissenssammlung über Computernetzwerke
Schnellstart-Node.JS-Vollversion
Der Frontend-Kurs, der Sie am besten versteht: HTML5/CSS3/ES6/NPM/Vue/...[Original]
Schreiben Sie Ihr eigenes PHP-MVC-Framework (40 Kapitel ausführlich/große Details/Muss gelesen werden, damit Neulinge vorankommen)
















