Php 具有缩略图创建的多文件上载脚本不工作,未获取错误

Php 具有缩略图创建的多文件上载脚本不工作,未获取错误,php,arrays,file-upload,Php,Arrays,File Upload,下面的脚本不起作用。没有收到任何php错误消息。我问了一个类似的问题,改变了缩略图的创建,如果我更新了这个问题,它将不会被看到 代码未通过文件类型检查。文件的输入类型的名称为multifile[] if ((($_FILES['multifile']['type'][$key] == "image/png") || ($_FILES['multifile']['type'][$key] == "image/jpeg") || ($_FILES['multifi

下面的脚本不起作用。没有收到任何php错误消息。我问了一个类似的问题,改变了缩略图的创建,如果我更新了这个问题,它将不会被看到

代码未通过文件类型检查。文件的输入类型的名称为multifile[]

if ((($_FILES['multifile']['type'][$key] == "image/png") || 
        ($_FILES['multifile']['type'][$key] == "image/jpeg") || 
        ($_FILES['multifile']['type'][$key] == "image/pjpeg") && 
        ($_FILES['multifile']['size'][$key] < 2097152)))
    {

        if(count($_FILES['multifile']['name'])) 
        {
            foreach ($_FILES['multifile']['name'] as $key => $filename)
            {

                $filename = time().'_'.$_FILES['multifile']['name'];  
                $source = $_FILES['multifile']['tmp_name'];  
                $target = 'uploads/'.$filename;  

                if(move_uploaded_file ($_FILES['multifile']['tmp_name'][$key],$target))
                {
                    createThumbnail($filename);  

                    //database insert here

                    echo '<div class="success" style="margin-right:25px;">Images added, view individual album to edit image descriptions</div>';
                }
            }
        }
    }

    else
    {
        echo '<div class="error">Invalid file, only jpg, jpeg, or png file types allowed</div>';
    }
把你的if改成这个

 if ((($_FILES['multifile']['type'][$key] == "image/png") || 
    ($_FILES['multifile']['type'][$key] == "image/jpeg") || 
    ($_FILES['multifile']['type'][$key] == "image/pjpeg")) && 
    ($_FILES['multifile']['size'][$key] < 2097152))
如果可能的话,您还可以给出打印输出($\u文件['multifile'])

for($i=0;$i;
如果(($_FILES['multifile']['type'][$i]==“image/png”)|
($_FILES['multifile']['type'][$i]==“image/jpeg”)||
($_文件['multifile']['type'][$i]==“image/pjpeg”)&&
($_文件['multifile']['size'][$i]<2097152))
{
回声“icond:.$i.”
; $filename=time(); $target='uploads/'。$filename; 如果(移动上传的文件($文件['multifile']['tmp\u name'][$i],$target)) { 创建缩略图($filename); echo“添加图像,查看个人相册以编辑图像描述”; } 其他的 { 回显“无效文件”。$filename',仅允许jpg、jpeg或png文件类型'; } } }
你能给出你的$\u文件阵列的打印结果吗?还有我的更改,如果是这样的话,你一开始还卡住了吗。第一个$key的值来自哪里?我可以看到您正在使用$key来迭代
foreach($\u FILES['multifile']['name']作为$key=>$filename)
tooth键是必需的,我很好奇它是否存在。好的,故障排除的一种方法是输入say
echo 1;死亡(0)
并在if条件下移动它,看看它是否到达了那里,然后慢慢向下移动,看看它失败的地方。另一件事是提供变量
$target
的完整路径,例如
c:\uploads\filename.png
或者类似的东西,如果当前php文件目录中存在uploads文件夹
$target=dirname(u文件名)。“/uploads/$filename”
它甚至没有通过文件类型验证。。我按你说的做了尝试,没有骰子。还有其他想法,为什么它不能通过文件验证吗?单文件上传版本可以很好地进行文件类型验证。
 if ((($_FILES['multifile']['type'][$key] == "image/png") || 
    ($_FILES['multifile']['type'][$key] == "image/jpeg") || 
    ($_FILES['multifile']['type'][$key] == "image/pjpeg")) && 
    ($_FILES['multifile']['size'][$key] < 2097152))
if(count($_FILES['multifile']['name']) >0) 
for($i=0;$i< count($_FILES['multifile']['type']);$i++){
    echo "i:".$i."<br/>";
    if ((($_FILES['multifile']['type'][$i] == "image/png") || 
    ($_FILES['multifile']['type'][$i] == "image/jpeg") || 
    ($_FILES['multifile']['type'][$i] == "image/pjpeg")) && 
    ($_FILES['multifile']['size'][$i] < 2097152))
    {
    echo "icond:".$i."<br/>";

            $filename = time().'_'.$_FILES['multifile']['name'][$i];  
            $target = 'uploads/'.$filename;  

            if(move_uploaded_file ($_FILES['multifile']['tmp_name'][$i],$target))
            {
                createThumbnail($filename);  
                echo '<div class="success" style="margin-right:25px;">Images added, view individual album to edit image descriptions</div>';
            } 
             else
            {
             echo '<div class="error">Invalid file'.$filename.', only jpg, jpeg, or png file types allowed</div>';
             }        
    }
}