我想弄清楚为什么我在尝试上传多张图片时会遇到一堆错误
输入为<input type='file' name='file[]' multiple>
if (!empty($_FILES['file'])){
if ($_FILES['file']['name'] != "") {
$count = 0;
foreach ($_FILES['file']['name'] as $filename) {
$allowed = array('jpg', 'jpeg', 'png', 'bmp', 'tiff', 'gif');
$img_name = $filename;
$img_extn = strtolower(end(explode('.', $img_name)));
$img_temp = $_FILES['file']['tmp_name'][$count];
$count = $count + 1;
if(in_array($img_extn, $allowed) === true){
$img_path = 'images/images/' . substr(md5(time()), 0, 10) . '.' . $img_extn;
move_uploaded_file($img_temp, $img_path);
$images = array(
'images' => $img_path,
'post_id' => $_POST['id']
);
add_images($images);
}else{
$errors[] = ''.$filename.' - file type is not allowed. Only: ' . implode(', ', $allowed) . '';
}
}
}
}
只有一个图像上传到临时文件夹 以及如何将post_id连接到数据库?
答案 0 :(得分:2)
为什么不在$filename
而不是foreach
内使用$_FILES['file']['name']
?
答案 1 :(得分:1)
$img_name = $_FILES['file']['name'];
应该是
$img_name = $filename;
因为您正在使用for-each
foreach ($_FILES['file']['name'] as $filename) {
}
答案 2 :(得分:0)
多张图片。它必须是$ _FILES ['file'] ['name'] [0]
使用索引访问它。因为我看到你没有使用索引。 explode()会抛出一个警告,因为它试图破坏一个数组。