php图片上传无效

时间:2014-02-15 19:59:33

标签: php

我想弄清楚为什么我在尝试上传多张图片时会遇到一堆错误

输入为<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连接到数据库?

3 个答案:

答案 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()会抛出一个警告,因为它试图破坏一个数组。