Javascript 第二个文件上传在ExtJS 6中失败,在ExtJS 4中工作
非常低级的文件上载:Javascript 第二个文件上传在ExtJS 6中失败,在ExtJS 4中工作,javascript,extjs,file-upload,Javascript,Extjs,File Upload,非常低级的文件上载: dockedItems: [{ xtype: 'toolbar', dock: 'top', items: [{ xtype: 'form', items: [{ xtype: 'filefield', fieldLabel: 'Select file', listeners: { change: {
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"));
}
});
data-ref="fileInputEl"
name="filefield-1333-button"
data-componentid="filefield-1333-button"
第一次上传文件就像一个魔咒;文件打包到multipart/mime中并正确提交
来自同一文件上载字段的第二个文件上载失败,因为该文件未打包到mime中
如果我关闭窗口并再次打开它,文件字段将再次工作-对于单个上载,即
文件输入字段的DOM中的差异告诉我们为什么浏览器的行为是这样的。以下三个属性神奇地从
中丢失,这是Sencha ExtJS 6框架中的一个bug。如果您为文件上载字段提供了名称
属性,则一切正常
xtype: 'filefield',
fieldLabel: 'Select file',
name: 'RequiredSenchaBugWorkaround',
...
添加名称并不总是有效的。它在Ext 6.2中仍然存在问题。除此之外,你还应该这样做
FileInputField1.reset();
这将确保该字段被重置,并允许您再次上传相同的文件。您找到答案了吗?@alex_kalenyuk将我的发现添加为答案。如果问题和答案对你有帮助,别忘了投票。