php mysql上传多张图片_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);
?>
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的php mysql上传多张图片_PHP开发之多个文件上传到MySql数据库(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql firebird 性能_Fi
- 下一篇: mysql驱动连接不了mariadb_无