所以我有一個處理的標準文本輸入,並且還有上傳的文件(通過$ _FILES數組)某種形式的處理代碼如何輕鬆上傳沒有表單提交(使用jQuery + AJAX)文件
我想有通過AJAX提交完成
請問jQuery的post()。方法仍然通過 - > $ _FILES傳遞那些東西,還是我需要做一些特別的事情?
所以我有一個處理的標準文本輸入,並且還有上傳的文件(通過$ _FILES數組)某種形式的處理代碼如何輕鬆上傳沒有表單提交(使用jQuery + AJAX)文件
我想有通過AJAX提交完成
請問jQuery的post()。方法仍然通過 - > $ _FILES傳遞那些東西,還是我需要做一些特別的事情?
由於JavaScript無法訪問本地文件系統,因此Ajax(使用JavaScript定義)無法執行文件上載。有些似乎使用Ajax的解決方法,比如iframe或使用Flash。
狩獵谷歌周圍,你會發現一些東西。有更多的庫(例如YUI)將這些放在一起。
要通過Ajax上傳文件,您需要使用iframe或Flash的解決方法。
我推薦你Uploadify,它使用flash做上傳,並使用jQuery。我喜歡它有很多設置,它爲隊列處理提供了一個很好的默認樣式。只需按照說明在您的網站中進行設置即可。
在PHP腳本中,您將收到$ _FILES數組中的文件,就像它是通過表單進行的正常提交一樣,默認名稱是'Filedata',因此您可以通過$ _FILES [ 'Filedata上']。然後僅回顯Ajax請求(JSON或XML)的響應,並執行Uploadify'onComplete'事件的一些JS代碼。
您可以嘗試使用HTML 5的文件上傳API,這將要求他們將文件拖放到瀏覽器窗口中。在這裏閱讀更多:http://www.appelsiini.net/2009/10/html5-drag-and-drop-multiple-file-upload
此外,你可以做谷歌齒輪(這需要安裝IE瀏覽器,但在Chrome上默認)同樣的事情。
可以檢測到任何一個的出現,並優雅地降級。
有關Google Gears文件上傳API的更多信息:http://www.appelsiini.net/2009/10/drag-and-drop-file-upload-with-google-gears – 2010-03-31 08:06:07