返回列表 發帖

Jquery傳送檔案問題

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

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

如果可以,post 部份該怎寫呢@@.

回復 1# domino

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

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

  • 在頁面上做一個隱藏的 iframe
  • 把上傳檔案表單的 target 指到這個 iframe
  • user 選取檔案上傳後,就會透過這個 iframe 進行 post 上傳檔案
  • 檔案上傳完成後,頁面刷新,驅動頁面上的 onload
  • 再呼叫原頁面上的 JavaScript 進行後續動作


過程還蠻複雜的,如果你不熟悉整個流程的話,建議用 jQuery 現有的 plugin 即可。
To infinity and beyond!

TOP

回復 2# wmh

1.請問他這樣限制是為了安全性嗎?
2.請問管理員能推薦哪些外掛呢? 只需處理上傳部分.

TOP

1. 和安全性無關喔,用 GET 沒辦法上傳檔案
2. 我用過 jQuery Form,使用上相當簡單。你也可以參考這一篇介紹的三種上傳程式。
To infinity and beyond!

TOP

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


我就是使用 $.post 才無法發送.
做一個隱藏的 iframe 該不會是解決 跨域
還是XMLHttpRequest本身不能上傳檔案的缺陷.

TOP

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

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

透過 iframe 的話,這些事還是由瀏覽器負責,表單還是一樣,只是 target 不同而已。
To infinity and beyond!

TOP

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

請問站長..我看了官方的說明我還是不太瞭解怎使用.

TOP

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

TOP

感謝版主,我搞定了.

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

因為上傳欄位是可以自己新增的.
要每個欄位獨立上傳.

TOP

如果你新增的都是檔案上傳的欄位,那麼可能要連同表單都是新建的喔
To infinity and beyond!

TOP

返回列表 回復 發帖