我正在使用Dojo 1.8。我已经定义了一个支持Firefox,Chrome和Safari中的多个附件的上传器,但是当我在IE9中提交表单时,会发出多个POST请求而不是一个。
以下是我的代码的粗略概要。我加载Flash插件,以便上传器将在IE中运行(IFrame和HTML5插件不起作用)。有什么理由说明为什么这个行为与IE以外的其他浏览器的行为差别很大?
define([
'dojox/form/Uploader',
'dojox/form/uploader/FileList',
'dojox/form/uploader/plugins/Flash'
], function(Uploader, FileList) {
...
this.u = new dojox.form.Uploader({
label: "Browse...",
multiple: true,
uploadOnSelect: false,
url: 'uploadServlet'
});
this.list = new FileList({
uploader: u
});
...
this.u.startup();
this.list.startup();
});
答案 0 :(得分:1)
在 dojo 1.9.1 上,Flash
插件会显示以下警告消息:
dojox.form.uploader.plugins.Flash已被删除。您可以直接使用Uploader,它将包含所有必要的功能。
所以,我猜你不需要加载任何插件,Uploader会为你做这件事。
答案 1 :(得分:0)
这是Flash插件的默认行为。所有其他支持带有multiple =“true”的HTML5文件输入的浏览器都使用HTML5插件,除非你强制使用flash。
答案 2 :(得分:0)
在与上传器的Flash插件搏斗后,我得出以下(令人失望的)结果:
has("ie")
嗅探了用户代理,并处理了与其他浏览器不同的IE上传附件。在此之后,我愤怒地摇晃着拳头,并诅咒其家人。force="flash"
,否则所有其他浏览器都会使用HTML5插件,效果很好。这总体上有点令人失望,因为Dojo应该为所有主流浏览器启用跨平台支持(遗憾的是IE仍然包含在内),但是dojox捆绑包仍然有点儿错误。希望这个功能在2.0中有所改进。