簡體   English   中英

與ExtJS異步發布文件的最佳方式

[英]Best way to post files asynchronously with ExtJS

我基本上有一個用戶填寫的表單,並且還可以附加文件。 它實際上與gmail完全相同:文件是在您仍在表單中鍵入信息時發送的,當您單擊最終提交按鈕時,它會等待文件全部轉移並提交最終字段。

我的問題是在此過程中提交這些文件。 我的第一個想法是首先為每個添加的文件創建一個新的FormPanel,以便能夠使用POST Ext.Ajax.request發送它們。 不幸的是,我們不能在一個表單中嵌入一個表單(有些我認為ExtJS會以不同的方式處理它,但我嘗試過並不是這樣)。

我在互聯網上看到一些使用Flash的控件來做到這一點,但這不是我想要的方式。 我想像谷歌一樣做到這一點! 除了有一個進度條,它是一個很好的功能,但它不是強制性的:)謝謝你的幫助!

簡短回答:不要嵌套表格,並排放置(甚至動態創建)。

更長:

當你考慮它時,你正在做一些不是原子操作的事情。 上傳文件和在表單上發布數據(技術上講)是2個不相關的交易。 你提供它們之間的事務上下文,就像gmail一樣:你創建一個“draft”對象,上傳文件說它們屬於這個草稿,最后發布其余的表單數據並最終將草稿最終化為一個完全構造的對象。

當然,你必須對所有這些進行管理,但這不是手頭的問題。

重點是:根據我上面描述的“原子性”對UI進行分區。 不要將“文件上傳”和“最終提交”的操作混合到同一HTML表單/ Ext FormPanel中。 (您仍然可以在視覺上為用戶提供相同的概念UI)。

您可以使用ad-hoc創建的表單為文件上傳執行“Ext.Ajax.request”。

你可以在這里查看Saki的例子。

希望這可以幫助 :-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM