我在多文件上传方面遇到了一些麻烦
在我的控制器中,我生成一个带有表单的窗口,表单有一个文件字段和一个网格:
var ventanaSubirDocumento=new Ext.Window({
title: '<span style="color:#C85E00;">Subida de Documento</span>',
plain: true,
modal: true,
frame: true,
border: false,
resizable: false,
draggable: false,
scope:this,
items:[
{
xtype:'form',
width: 400,
bodyPadding: 10,
frame: true,
timeout:600000,//Por si pesa mucho el archivo
renderTo: Ext.getBody(),
items: [{
xtype: 'filefield',
name: '',
fieldLabel: '',
fieldStyle:'color:black',
labelWidth: '',
msgTarget: 'side',
allowBlank: false,
anchor: '100%',
buttonText: 'Seleccionar documento',
listeners: {
change: function(fld, value) {
//var newValue = value.replace(/C:\\fakepath\\/g, '');
//fld.setRawValue(newValue);
var upload = fld.fileInputEl.dom;
var files = upload.files;
var names = [];
var names2 = [];
if (files) {
for (var i = 0; i < files.length; i++){
names.push(files[i].name);
names2.push({archivo:files[i].name})
value = names.join(', ');
}
}
gridDocumentos.getStore().loadData(names2);
fld.setRawValue(value);
},
/*render:function(field, eOpts){
field.fileInputEl.set({ multiple: true });
}*/
afterrender:function(cmp){
cmp.fileInputEl.set({
multiple:'multiple'
});
}
}
},
gridDocumentos
],
buttons: [{
text: 'Subir documento',
handler: function() {
var form = this.up('form').getForm();
if(form.isValid()){
form.submit({
url: 'data/php/Tmc_SubirDocumento.php',
waitMsg: 'Subiendo documento...',
success: function(fp, o) {
ventanaSubirDocumento.close();
Ext.Msg.show({
title: 'Subida de documento',
msg: 'Documento subido',
icon: Ext.MessageBox.INFO,
buttons: Ext.Msg.OK
});
}
}
}
}]
]
}).show();
在控制器中一切正常,如果我选择1,2,3等文件上传网格填充及其名称。
当我提交表单并执行PHP来处理选定的文件时,问题出现了,如果我打印$ _FILES变量,我只会在PHP中获取最后一个选择。
在我的php中请求有效负载我看到了三个文件,但是$ _FILES只有最后一个:
------ WebKitFormBoundaryJhIv2MXqKkzPnNys 内容处理:表格数据; NAME = “的FileField-1459-inputEl”;文件名= “对File1.doc” 内容类型:application / msword
------ WebKitFormBoundaryJhIv2MXqKkzPnNys 内容处理:表格数据; NAME = “的FileField-1459-inputEl”;文件名= “file2.docx” Content-Type:application / vnd.openxmlformats-officedocument.wordprocessingml.document
------ WebKitFormBoundaryJhIv2MXqKkzPnNys 内容处理:表格数据; NAME = “的FileField-1459-inputEl”;文件名= “file3.docx” Content-Type:application / vnd.openxmlformats-officedocument.wordprocessingml.document
我错过了什么?如何在php文件中的formsubmit之后检索所有文件?
答案 0 :(得分:2)
您可以命名文件字段,因此它会将name属性添加到基础html输入中。
...
xtype: 'filefield',
name: 'uploads[]',
fieldLabel: '',
...
然后你可以用PHP获取它们;
$_FILES["uploads"];