2011-12-17 237 views
4

我一直在使用自動上傳HTML5/JS的圖像文件,並使用PHP腳本將其保存在本地主機(在/ var/WWW /),但我不能保存。當_FILES對象中存在對象時,函數move_uploaded_file總是返回false。我是一個新手在PHP中:如何將上傳的文件保存在本地主機上?

$target = "upload/"; 
    if(!empty($_FILES)) 
    { 
    if(move_uploaded_file($_FILES['image_file']['tmp_name'], $target)) 
    { 
    echo "The file ". basename($_FILES['image_file']['name']). " has been uploaded..."; 
    } 
    else { 
    echo "Sorry, there was a problem uploading your file. {$error}"; 
    } 
    } 
    else 
    { 
    echo "_files is empty"; 
    } 
+0

轉! – 2011-12-17 13:32:06

+0

問題是move_uploaded_file的第二個參數 - 見我的回答 – SlavaNov 2011-12-17 13:36:18

+0

可能已經閱讀move_uploaded_file的文檔... :) – Corbin 2011-12-17 13:51:13

回答

5

嘗試

move_uploaded_file($_FILES['image_file']['tmp_name'], $target.$_FILES['image_file']['name']) 

因爲你需要指定文件的名稱,不僅目錄。

請參閱從PHP documentation

<?php 
$uploads_dir = '/uploads'; 
foreach ($_FILES["pictures"]["error"] as $key => $error) { 
    if ($error == UPLOAD_ERR_OK) { 
     $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; 
     $name = $_FILES["pictures"]["name"][$key]; 
     move_uploaded_file($tmp_name, "$uploads_dir/$name"); 
    } 
} 
?> 
+0

謝謝您的回答。 我希望這個問題應該已經解決了,但它仍然在那裏,我按你的答案已經改變了我的代碼,但我不能看到我的上傳文件夾中的文件。 更多暗示? – 2011-12-17 13:47:22

+0

改變了代碼,請看看現在的工作(tmp_name的值來命名) – SlavaNov 2011-12-17 14:03:19

+0

還是它的一樣,當我打印通過_FILES名或文件的大小[「IMAGE_FILE」] [「名」]它顯示我正確的名字,這意味着我在我的PHP頁面獲取文件對象。 – 2011-12-17 14:31:32

0

例嘗試錯誤報告此

if(is_uploaded_file($_FILES['image_file']['tmp_name'])) 
    { 
     move_uploaded_file($_FILES['image_file']['tmp_name'], $target.$_FILES['image_file']['name']); 
    echo "The file ". basename($_FILES['image_file']['name']). " has been uploaded..."; 
    } 
相關問題