与ExtJS异步发布文件的最佳方式

时间:2009-12-11 00:31:56

标签: javascript ajax post file-upload extjs

我基本上有一个用户填写的表单,并且还可以附加文件。它实际上与gmail完全相同:文件是在您仍然在表单中键入信息时发送的,当您单击最终提交按钮时,它会等待文件全部传输并提交最终字段。

我的问题是在此过程中提交这些文件。我的第一个想法是首先为每个添加的文件创建一个新的FormPanel,以便能够使用POST Ext.Ajax.request发送它们。不幸的是,我们不能在一个表单中嵌入一个表单(有些我认为ExtJS会以不同的方式处理它,但我尝试过并不是这样)。

我在互联网上看到一些使用Flash的控件来做这件事,但这不是我想要的方式。我想像谷歌一样做到这一点!除了有一个进度条,它是一个很好的功能,但它不是强制性的:) 谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

简短回答:不要嵌套表格,并排放置(甚至动态创建)。

长:

当你考虑它时,你正在做一些不是原子操作的事情。 上传文件和在表单上发布数据(技术上讲)是2个不相关的交易。 你提供它们之间的事务上下文,就像gmail一样:你创建一个“draft”对象,上传文件说它们属于这个草稿,最后发布其余的表单数据,并将草稿最终化为一个完全构造的对象。 / p>

当然,你必须对所有这些进行管理,但这不是手头的问题。

重点是:根据我上面描述的“原子性”对UI进行分区。 不要将“文件上传”和“最终提交”的操作混合到同一HTML表单/ Ext FormPanel中。 (您仍然可以在视觉上为用户提供相同的概念UI。)

您可以使用ad-hoc创建的表单为文件上传执行“Ext.Ajax.request”。

你可以查看Saki的例子here

希望这会有所帮助: - )

相关问题