Php 具有缩略图创建的多文件上载脚本不工作,未获取错误
下面的脚本不起作用。没有收到任何php错误消息。我问了一个类似的问题,改变了缩略图的创建,如果我更新了这个问题,它将不会被看到 代码未通过文件类型检查。文件的输入类型的名称为multifile[]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
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键是必需的,我很好奇它是否存在。好的,故障排除的一种方法是输入sayecho 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>';
}
}
}