javascript - 第二个文件上传在 ExtJS 6 中失败,在 ExtJS 4 中有效

标签 javascript extjs file-upload

非常低级的文件上传:

dockedItems: [{
    xtype: 'toolbar',
    dock: 'top',
    items: [{
        xtype: 'form',
        items: [{
            xtype: 'filefield',
            fieldLabel: 'Select file',
            listeners: {
                change: {
                    fn: me.onFilefieldChange,
                    scope: me
                }
            }
        }]
    },{

...

onFilefieldChange: function(filefield, value, eOpts) {
    var form = filefield.up('form').getForm();
    form.submit({
        url: APIURI+'FileUpload',
        headers: {'Accept':'application/json','Content-Type':'application/json'},
        waitMsg: 'Uploading',
        success: function(fp, o) {
            var filedata = Ext.decode(o.response.responseText).data;
            var rec = Ext.create("MyApp.model.FileModel",filedata);
            Ext.getStore("FileStore").add(rec);
        },
        failure: function(fp, o) {
            Ext.alert("ERROR", "File save failed"));
        }
    });

第一个文件上传就像一个魅力;文件被打包到 multipart/mime 中并正确提交。

从同一个文件上传字段上传第二个文件失败,因为文件没有打包到 mime 中。

如果我关闭窗口并再次打开它,文件字段将再次工作 - 即对于单个上传。

文件输入字段的 DOM 差异告诉我们为什么浏览器会有这样的行为。 <input type="file" 神奇地缺少以下三个属性第一个文件上传后的字段:

data-ref=​"fileInputEl"
name=​"filefield-1333-button"
data-componentid=​"filefield-1333-button"

现在,如果我使用 sencha 文档中的文件上传字段,则不会发生这种情况。我在 ExtJS 4.2.2 中的代码不会发生这种情况。但 ExtJS 6.0.1 确实会发生这种情况。

你不会知道为什么吧?

最佳答案

这是 Sencha ExtJS 6 框架中的一个错误。如果您向文件上传字段提供 name 属性,一切都会按预期进行。

xtype: 'filefield',
fieldLabel: 'Select file',
name: 'RequiredSenchaBugWorkaround',
...

关于javascript - 第二个文件上传在 ExtJS 6 中失败,在 ExtJS 4 中有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33020472/

相关文章:

php - 在像 Facebook 这样的 jomsocial 墙中添加 href

javascript - ExtJS TreePanel - 刷新并保持节点状态

extjs - Sencha Cmd build - 创建后台进程失败

c# - 如何使用 Asp.net Websrvice 绑定(bind) ExtJS 网格?

javascript - 使用 FileReader api 上传二进制文件时遇到问题

javascript - 从 C# 代码调用位于 WPF WebBrowser 控件中的 Javascript 函数时出错

javascript - 使用 Javascript-surface-plot 插入缺失数据

javascript - 如何关闭由showModalDialog打开的对话框?

java - 如何在jsp中获取浏览文件路径............?

JQuery 文件上传在单独的 Post 请求中发送每个文件?