2010-04-12 80 views
5

我已經構建了一個表單來上傳圖片,並使用Prototype/PHP進行處理。

$('image_upload').observe('submit', function() { 

    var params = $H(); 
    params.set('name', $('image_title').value); 
    params.set('from', $('from_who').value); 
    params.set('upload_file', $('upload_file').value); 

    new Ajax.Request('/files/upload_process.php', { 
     method:'post', 
     parameters: params, 

     onSuccess: function(r) { 
     $('uploadbox').update('<img src="/images/interface/thankyou.png" />'); 


     } 

    }) 



    }); 

窗體本身的數據發送到服務器,但是當我試圖輸出出現print_r($_FILES['upload_file']);什麼都沒有,甚至沒有一個空數組。

如果我輸出print_r($_POST),參數發送正常,但只有圖像的文件名。

所以看來文件本身並沒有被髮送。 我該如何處理? 謝謝 豐富

+1

爲了記錄,可以使用['FormData'](https://developer.mozilla.org/en/XMLHttpRequest/FormData)對象通過AJAX上傳。該方法易於使用,目前由Chrome,Safari和Firefox支持。 – 2011-12-27 21:26:25

回答

6

我不相信你可以通過ajax發送文件出於安全原因。您必須將表單發佈到iframe並從那裏處理。

+0

擊敗我。 +1抵消 – 2010-04-12 02:39:22

+1

棄權的理由:因爲你打敗了別人的答案,因爲你沒有提供完整的工作解決方案,或者最終只是因爲有人可以爲任何原因投票。 – David 2010-04-12 03:15:16

+0

謝謝你們,這裏說明的原因是有道理的。 – 2010-04-12 20:52:50

3

您不能使用XHR上傳文件。
您需要使用IFRAME或Flash/Java等瀏覽器插件。

相關問題