我有这样一段代码:PHP move_uploaded_file()不适用于safari?
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上没有尝试过,但仍然无法打开它。
编辑
任何未来这个帖子的观众的利益。
这不是一个php的move_uploaded_file()问题 - 我刚刚确认它实际上是一个SAFARI v5.1。+ BUG上的html5多重属性。很少信息here
php代码被执行服务器端,我不认为这与浏览器有什么关系。你看到日志中有任何错误吗? – romainberger
@romainberger是的,但它只发生在safari。我刚刚测试过它,但只有1张图片,它没有任何问题,它工作正常,但是当我再次测试它时,它重定向了多个图像。其他浏览器的一切都运行平稳。 (仍然不知道IE)错误日志说没有价值。 –
您的HTML表单元素是否将'enctype'属性设置为'multipart/form-data'? – Populus