Board logo

標題: Jquery傳送檔案問題 [打印本頁]

作者: domino    時間: 2010-2-9 21:02     標題: Jquery傳送檔案問題

本帖最後由 domino 於 2010-2-10 17:41 編輯

請問Jquery 是不是無法透過 post 來提交表單的檔案...上傳呢?
是有安全性限制嗎?

如果可以,post 部份該怎寫呢@@.
作者: wmh    時間: 2010-2-9 22:06

回復 1# domino

表單上傳是一定要用 post 沒錯。

你是要用 JavaScript 做非同步上傳的效果嗎?一般來說流程是這樣的:


過程還蠻複雜的,如果你不熟悉整個流程的話,建議用 jQuery 現有的 plugin 即可。
作者: domino    時間: 2010-2-9 23:24

回復 2# wmh

1.請問他這樣限制是為了安全性嗎?
2.請問管理員能推薦哪些外掛呢? 只需處理上傳部分.
作者: wmh    時間: 2010-2-9 23:45

1. 和安全性無關喔,用 GET 沒辦法上傳檔案
2. 我用過 jQuery Form,使用上相當簡單。你也可以參考這一篇介紹的三種上傳程式。
作者: domino    時間: 2010-2-10 00:08

1. 和安全性無關喔,用 GET 沒辦法上傳檔案
2. 我用過 ,使用上相當簡單。你也可以參考介紹的三種上傳程式 ...
wmh 發表於 2010-2-9 23:45


我就是使用 $.post 才無法發送.
做一個隱藏的 iframe 該不會是解決 跨域
還是XMLHttpRequest本身不能上傳檔案的缺陷.
作者: wmh    時間: 2010-2-10 01:06

檔案上傳的動作一般是由瀏覽器在處理的,先讀取檔案,編碼後再傳輸。

如果你要透過 JavaScript 做這件事,會有很多問題要處理,你得讓 JavaScript 能讀取你 local 端的檔案,得自己做編碼,等等...

透過 iframe 的話,這些事還是由瀏覽器負責,表單還是一樣,只是 target 不同而已。
作者: domino    時間: 2010-2-10 01:19

本帖最後由 domino 於 2010-2-10 17:42 編輯

請問站長..我看了官方的說明我還是不太瞭解怎使用.
作者: wmh    時間: 2010-2-10 01:35

你可以參考 ajaxSubmit 這一段:
http://www.malsup.com/jquery/form/#ajaxSubmit
$('#form1').ajaxSubmit();

作者: domino    時間: 2010-2-10 02:52

感謝版主,我搞定了.

不過我有個問題.
這是一次性把表單物件都給傳出去.
是否能分開呢?

因為上傳欄位是可以自己新增的.
要每個欄位獨立上傳.
作者: wmh    時間: 2010-2-10 08:54

如果你新增的都是檔案上傳的欄位,那麼可能要連同表單都是新建的喔
作者: domino    時間: 2010-2-10 17:44

這樣說來.
利用這個外掛要做成分別返回上傳欄位的上傳結果 不能了??
作者: wmh    時間: 2010-2-10 19:49

要選取特定欄位 post 是可以,但是如果有檔案則不行,跟之前一樣的問題。
所以如果是要單獨上傳一個檔案,則要新增一個表單,裡面就一個檔案上傳的欄位,這樣才行。




歡迎光臨 jsGears.com 技術論壇 - AJAX, JavaScript, jQuery, 網站開發, 前端效能優化 (http://jsgears.com/)