2012-08-02 77 views
0

我無法成功上傳圖像/文件到我的服務器。 php如下:上傳的照片/文件到服務器PHP

//This is the directory where images will be saved 
$uploadDir = "./"; 
$uploadFile = $uploadDir . basename($_FILES['photo']['name']); 

//Writes the photo to the server 
if(move_uploaded_file($_FILES['photo']['tmp_name'], $uploadFile)){ 
    echo "The file has been uploaded successfully."; 
} else { 
    print_r($_FILES); 
} 

我選擇了這個腳本所在的目錄,以確保在我上傳到最終目錄之前的功能。我想上傳照片,稍後會檢查文件擴展名 - 但現在我至少需要上傳功能才能工作。我得到一個空數組返回。

**編輯** 此外,enctype="multipart/form-data"已啓用窗體上,我通過AJAX提交它。

的形式如下:

<form id="imageUploadForm" name="imageForm" enctype="multipart/form-data"> 
    <label for="photo" class="blogLabel">Upload an Image</label> 
    <input type="file" name="photo" id="imageUpload" onChange="uploadImage();"> 
</form> 

是的,我也知道我不應該用「的onChange」提交表單,但裸陪我。

的AJAX提交形式如下:

function uploadImage() { 
    $.ajax({ 
     type:'POST', 
     url:'imageController.php', 
     data:$('#imageUploadForm').serialize(), 
     success: function(responseSubmit) { 
       alert(responseSubmit); 
      } 
    }); 
}; 
+6

常見的錯誤是離開 「ENCTYPE =」 多部分/格式數據 「」 關閉的形式。 http://www.php.net/manual/en/features.file-upload.post-method.php – 2012-08-02 20:43:14

+0

確實啓用 - 對不起,應該記下這一點。我將編輯該問題以包含該問題。 – mdance 2012-08-02 20:45:07

+0

發佈整個表單,如果$ _FILES爲空,則問題出在哪裏 – 2012-08-02 20:46:00

回答

4

不能通過這樣的AJAX上傳文件。

這將導致沒有文件被上傳

您只能按照您想要的方式進行常規表單提交以將文件提交到服務器。


如圖評論 - 你可以做一個隱藏的iframe招將文件提交給服務器不使用AJAX


或者 you can use XHR2

+0

我已經說過:-) – 2012-08-02 20:51:17

+0

@Dagon哈哈我剛剛加載的評論:-P偉大的思想認爲一樣^ _^ – Neal 2012-08-02 20:51:33

+0

@downvoter - 爲什麼downvote?這是對的! – Neal 2012-08-02 20:51:46