我正在尝试使用7.2.0 Modern File Field上载多个文件。
var txtSiteCode = Ext.create('Ext.field.Text', {
label: 'Site Code',
required: true,
name: 'site_code',
responsiveConfig: {
'width < 800': {
labelAlign: 'top'
},
'width >= 800': {
labelAlign: 'left'
}
}
})
}
}
}), fldFile = Ext.create('Ext.field.File', {
label: 'Images',
name: 'files',
multiple: true,
accept: 'image',
responsiveConfig: {
'width < 800': {
labelAlign: 'top'
},
'width >= 800': {
labelAlign: 'left'
}
},
}), form = Ext.create('Ext.form.Panel', {
url: 'data/test.php',
method: 'post',
enctype: 'multipart/form-data',
items : [txtSiteCode, fldFile],
})
当表单提交时,我只在服务器上的$_FILES数组中收到1个文件,但是从请求负载的大小判断,似乎所有文件实际上都应该是可用的。
FILE COUNT: 1, referer:
[Thu Aug 20 09:05:09.715473 2020] [php7:notice] [pid 12749] Array\n(\n [name] => FBK90084_Primary_14_PE4 (2).jpg\n [type] => image/jpeg\n [tmp_name] => /tmp/phpxjd0pK\n [error] => 0\n [size] => 2973487\n)\n,
以上是$_FILE数组大小的计数,以及$_FILE数组本身的转储。这是在文件选择器中选择3个jpg文件的结果。
Status200
OK
VersionHTTP/1.1
Transferred5.67 MB (0 B size)
Referrer Policyno-referrer-when-downgrade
以上是服务器响应,您可以看到大小为5.7mb(在本例中选择了2 ~ 3 mb文件)
你知道为什么$_FILES数组没有显示所有提交的文件吗?
最新消息:需要注意的是--如果我在devtools中手动设置呈现页面上字段的name属性,使其在末尾包含“[]”,那么我可以获得多个文件上传到服务器。问题似乎是表单没有将文件输入视为多个上传,并使用正确的“name[]”约定,EXT会从名称字符串中删除非字母数字字符。所以我似乎无法在代码中将字段名属性设置为“files[]”。我猜我可能可以覆盖它?只是不确定如何覆盖
1条答案
按热度按时间tv6aics11#
如果你怀疑文件是否真的按照你的期望发送,我建议你试着把问题分成两个主要的问题。它们是前端(ext js)问题和后端(你的PHP脚本在接收文件)。我可以告诉你如何让我们确保前端( Sencha ext js)真的发送多个文件,或者不通过使用文件字段配置中的change的侦听器。
另一种方法是检查文件是以多个关键形式参数'name[]'发送还是仅以单一形式参数'name'发送(但包含多个文件),只需在您提交到后端后检查浏览器中的网络工具,它会向您显示答案。