php mysql上传多张图片_PHP开发之多个文件上传到MySql数据库(一)
前面的章節(jié)我們介紹了用PHP實(shí)現(xiàn)上傳一個(gè)文件的教程。
朋友們就會(huì)有疑問,怎么樣才能上傳多張多個(gè)文件到數(shù)據(jù)庫(kù)?
重點(diǎn)在于放入幾個(gè)文件以后點(diǎn)擊提交上傳之后所有的文件一起上傳,并且每個(gè)文件都給一個(gè)新的路徑。
提供一種思路:
先獲取每個(gè)上傳文件的信息放入一個(gè)自定義數(shù)組中<?php
$uploadFiles?=?array();
?>
然后通過foreach循環(huán)顯示出來<?php
foreach($upfile?as?$key?=>$value)?{
foreach($value?as?$k?=>?$v){
$uploadFiles[$k][$key]=$v;
}
}
print_r($uploadFiles);
?>
結(jié)果展示類似<?php
/*?這里展示同時(shí)上傳2個(gè)文件信息
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
)
)
*/
?>
最后就是把前面章節(jié)演示的發(fā)布一個(gè)文件的限制條件放到循環(huán)中進(jìn)行判斷
獲取隨機(jī)文件名采用了獲取當(dāng)前時(shí)間來作為新文件名的前綴,跟后綴名重新組合到數(shù)據(jù)庫(kù)。<?php
//上傳后的文件名定義(隨機(jī)獲取一個(gè)文件名(保持后綴名不變))
$fileinfo?=?pathinfo($v["name"]);//解析上傳文件名字
do{
$newfile?=?date("Y-m-d,H-i-s")?.?rand(1000,?9999)?.?"."?.?$fileinfo["extension"];
}
while?(file_exists($path?.?$newfile));
?>
當(dāng)然鏈接數(shù)據(jù)庫(kù)表上傳文件也是必不可少的環(huán)節(jié)<?php
$link?=?mysqli_connect('localhost','username','password')?or?die("數(shù)據(jù)庫(kù)連接失敗!");
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);
?>
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的php mysql上传多张图片_PHP开发之多个文件上传到MySql数据库(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql firebird 性能_Fi
- 下一篇: mysql驱动连接不了mariadb_无