2014-10-06 82 views
0

我一直在閱讀如何上傳一個簡單的圖像文件.png文件格式,我見過使用一些偉大的插件的例子。我試過這些例子沒有成功。上傳圖片到php與ajax

這是一個簡單的例子。該方案是:上傳一個simlpe.png圖片,點擊一個按鈕,使用jQuery的Ajax到PHP。我想將文件對象編碼爲json以將其發送到服務器端。

HERES是HTML:

<div id="img_upload_container"> 
     <form id="data" method="post" enctype="multipart/form-data"> 
      <input name="image" type="file" /> 
      <button type="submit" >Submit</button> 
     </form> 
</div> 

的JavaScript:

$("form#data").submit(function(e){ 
    e.preventDefault(); 

    var formData = new FormData($(this)); 
    var data = JSON.stringify({action:'save_picture', 'picture':formData}); 
    console.log(data) 
    var request= $.ajax({ 
        url: "http://www.test.dev/picture", 
        type: "POST", 
        data: data, 
        processData: false, 
        contentType:'application/json' 
    }); 
    request.done(function(msg){ 
    console.log(msg); 
    }); 

}); 

服務器端: 其實這是沒有問題的。我可以處理這個罰款。我使用laravel,它有很好的文件處理選項。我不知道是否想將它保存在文件系統或RDBMS中。所以我只想確保我發送一個有效的文件供以後操作,而不管我最終在服務器端做什麼。

問題:Console.log(data)顯示一個空的formData雖然在那裏我選擇了一個有效的.png文件。

問題:我錯過了什麼。這是我第一次保存圖片文件。我不想爲此使用插件。所以,如果這是一個愚蠢的問題,請讓我放棄。

+1

如果這是一個實時的網站(也就是說,它不僅是一個學習鍛鍊),那麼試試這個:jQuery的文件上傳插件](http://hayageek.com/docs/jquery-upload-file.php)。我試過多次試玩,拉維的插件也很實用。我在很多網站上使用它。強烈推薦。 – gibberish 2014-10-07 00:18:02

+1

您是否嘗試過使用''而不是'' – Anthony 2014-10-07 01:26:53

回答

0

您可以formData.append嘗試:

var formData = new FormData(); 
formData.append('file', input.files[0]);