我有這樣一段代碼: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