0

我想创建一个 Dojo Uploader 按钮。

当用户完成选择文件时,我想立即将文件上传到服务器(不要等待提交点击)。

这是我的代码:

<script type="text/javascript">
require(["dojo/parser", "dojox/form/Uploader", "dojox/form/uploader/plugins/IFrame", "dojox/form/uploader/FileList", "dojo/domReady!"],
   function(parser) {
      parser.parse();
});
</script>

在 HTML 文档的正文中:

<input name="restoreFile" multiple="false" type="file" id="restoreBtn"
       data-dojo-type="dojox/form/Uploader"
       data-dojo-props='label: "Upload", 
                        url: "<s:url action="restore-backup" />", 
                        uploadOnSelect: "true"' />
<div id="fileList" data-dojo-type="dojox/form/uploader/FileList" 
     data-dojo-props='uploaderId: "restoreBtn"'></div>

我尝试将这两个标签都放入表单标签中,但行为没有变化。

当我点击上传器时,我看到了文件选择器。当我选择文件并单击“打开”时,FileList 显示所选文件,但没有任何内容发送到服务器。

我尝试要求所有三个上传插件,HTML5(在 IE 中不受支持,但在 Chrome 中也无法正常工作)、IFrame 和 Flash。

我误解了 uploadOnSelect 应该如何工作?为什么上传者选择后不上传文件?

4

3 回答 3

0

简单的信息;因为我不确定这是否适用于您的问题 - 但如果与旧版加载器(同步 XHR 1.7 之前的加载器)一起使用,上传器效果最好。这是由于作者选择插件架构的方式(flash / iframe / html5)。但是,它不应该与事件处理混淆

  • 我在想,尝试将其设置为程序组件 - 在 dojo.ready 和 dojo.parser 都完成了他们的任务之后..

或者,测试 1.6 版是否可以工作 - 或者设置 dojo.config.async = false 是否对您有帮助。

于 2012-11-07T01:06:25.443 回答
0

您可以将 dojox.form.Uploader 与 dojox.form.uploader.FileList 一起使用。只需如下声明这 2 个。

up = new dojox.form.Uploader({
            label: 'Select files',
            multiple: true,
            class:"browseButton",
            url: "UploadFile.php"
        }).placeAt(form);

        list = new dojox.form.uploader.FileList({
            uploader: up
        }).placeAt(form);

        btn = new Button({
            label: 'upload',
            onClick: function() {
                up.upload();
            }
        }).placeAt(form);

        btn.startup();
        up.startup();
        list.startup();
于 2013-05-13T06:55:31.473 回答
0

我确实尝试过同样的事情,并且在删除引号后它起作用了(使用 Dojo 1.10)

data-dojo-props="uploadOnSelect: true" 代替 data-dojo-props='uploadOnSelect: "true"'

于 2019-01-28T11:45:40.457 回答