返回列表 發帖
回復 1# domino

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

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

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


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

TOP

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

TOP

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

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

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

TOP

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

TOP

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

TOP

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

TOP

返回列表 回復 發帖