最近遇到PHP上传多文件的问题。
我在某处看到了一些指南如何去做,所以最后我这样结束了:
$total = count($_FILES['ufile']['name'][$i]);
$target = "gallery/";
for($i=0; $i<$total; $i++) {
if(($_FILES['ufile']['type'][$i]== 'image/jpeg')
||($_FILES['ufile']['type'][$i]== 'image/gif')
||($_FILES['ufile']['type'][$i]== 'image/png')
&&($_FILES['ufile']['size'][$i]<2097152)
&&($_FILES['ufile']['error'][$i] == 0)) {
$image = $_FILES['ufile']["name"][$i];
$temp = explode(".", $_FILES['ufile']["name"][$i]);
$gallery_img[$i] = round(microtime(true)) . '.' . end($temp); //gallery is ready
$final_gallery[$i] = $gallery_img[$i] . ", ";
move_uploaded_file($_FILES['ufile']["tmp_name"][$i], $target . $gallery_img[$i]);
$wszystko_OK = true;
}
}
不幸的是,它不起作用。我不知道如何修复该代码。甚至可以对数组中的 $_FILES 进行操作吗?我是 PHP 的新手,所以如果你能解释如何去做的话。
$temp = explode(".", $_FILES['ufile']["name"][$i]);
$gallery_img[$i] = round(microtime(true)) . '.' . end($temp);
^此代码当然是为了生成随机文件名,以免它们之间发生任何冲突。
$final_gallery[$i] = $gallery_img[$i] . ", ";
^这实际上是将这些文件名收集到变量中。我希望它看起来像这样:
1502916633.png, 1502916893.png, 1502916926.jpg
然后我会将这个变量插入我的 MySQL 数据库,然后读取它,删除逗号并显示多个图像。 在此先感谢您的帮助!
最佳答案
您在 for() 语句中定义 $i。所以,在它未定义之前。使用 count($_FILES['ufile']);定义 $total。
关于php - 在 PHP 中上传多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45737368/