2013-03-12 33 views
0

Ajax請求我有這樣 我不使用形式爲這個現在我想用ajax如何發送上傳文件

$('#file').on('change', function(e) { 
    $.ajax({ 
     url: "upload.php", 
     type: "POST", 
     data: ?, 
     processData: false, 
     contentType: false, 
     success: function (response) { 
      console.log(response); 
     } 
    }); 
}) 

在我必須將數據發送到上傳圖像的標記?我只有堆棧溢出這個Ajax,但我無法理解。還有一件事我該如何才能收回PHP文件中的數據

謝謝你?

+2

你爲什麼不只是谷歌瀏覽器來完成? – GOD 2013-03-12 17:43:46

+0

你有這裏的解決方案(有沒有解決方案使用jquery後)http://stackoverflow.com/questions/11046684/php-file-upload-using-jquery-post – 2013-03-12 17:44:44

+0

誰給我減點作爲初學者爲什麼你做了這 我的問題是真正的你可能比我更知道,並不意味着你是唯一的 – 2013-03-12 18:32:44

回答

1

通過ajax上傳圖片是不可能的。你可以做的是創建一個隱藏的iframe並使用它來上傳文件。

+1

這在現代瀏覽器中是絕對有可能的。 – 2013-03-12 17:45:35

+0

對不起@KevinB你是對的。如果你想支持IE9及以下,那麼它不可能。爲此支持IE9,Firefox 3及以下版本的兩種解決方案非常麻煩,您可能不想走這條路。 – 2013-03-12 18:38:45

+0

絕對是個人選擇。我會用現代的方法來做,並且只會降低不支持它的瀏覽器的功能。如果你把這個功能分解成自定義的方法,你只需要做一次。 – 2013-03-12 18:49:33

0

請注意,通常通過AJAX上傳文件是一件痛苦的事情。您可以在這裏查看相關問題File Upload via AJAX within JQuery

就我個人而言,我採取了提交時生成一個隱藏的iframe,並提交了表單的克隆。完成後,iframe的內容就會被抓回到jQuery中。我無法在舊IE版本中找到另一種工作方式。

0

你正在嘗試做可以在支持FormData功能

$('#file').on('change', function(e) { 
    var data = new FormData(); 
    data.append('file',this.files[0]); 
    $.ajax({ 
     url: "upload.php", 
     type: "POST", 
     data: data, 
     processData: false, 
     contentType: false, 
     success: function (response) { 
      console.log(response); 
     } 
    }); 
})