我有这段代码:
for($d = 0 ; $d < count($_FILES['uploadedfile']['name']) ; ++$d)
{ $imagenamecount = $d + 1;
$imagedetails = pathinfo( $_FILES['uploadedfile']['name'][$d]);
$finalpathfortempimagefile = $pathfortempimagefile."image"."$imagenamecount".".".$imagedetails['extension'];
if(!move_uploaded_file($_FILES['uploadedfile']['tmp_name'][$d], $finalpathfortempimagefile))
{
header('Location: http://localhost/stuff.php?ue=xx');
}
}
它的主要部分围绕使用move_uploaded_file()
重命名和传输多个上传的图像。我在 Chrome、Firefox 和 Opera 上都没有问题。但是当我在 Safari 上测试它时,它header('Location: http://localhost/stuff.php?ue=xx');
被激活了。(还没在IE上测试过,打不开。)
我在上面提供的代码之前有处理上传文件(检查扩展名等)的代码,但它没有问题,没有错误或其他任何问题。Safari 的文件上传表单也没有问题:
<form enctype="multipart/form-data" action="post.php" method="POST">
<input id="uploadInput" name="uploadedfile[]" type="file" multiple>
<input class="submit_css" type="submit" value="PREVIEW POST">
</form>
所以我认为它确实与 move_uploaded_file() 函数有关。有任何想法吗?
额外的:
用 Safari 再次测试,但这次只有 1 张图片,测试成功,没有错误。
再次测试它,但多次上传(2 和 5),测试不成功,它被重定向。
在其他浏览器上尝试了这两个测试,测试成功。
没有在IE上尝试过,但仍然无法打开它。
编辑
为了这篇文章的任何未来观众的利益。
这不是 move_uploaded_file() 的 php 问题 - 我刚刚确认这实际上是 html5 多重属性上的 SAFARI v5.1.+ BUG。这里信息很少