我正在使用Sencha Touch + PHP构建应用程序。
在Sencha Touch中我做了这样的表格:
xtype: 'fieldset',
items: [
{
xtype: 'textfield',
id: 'ctTitle',
name: 'title',
label: 'Title'
},
{
xtype: 'filefield',
id: 'ctFile',
name: 'filePdf',
label: 'File'
}
]
在我的Controller中有一个向php提交文件的功能:
onBtnSaveFile: function(){
Ext.Ajax.request({
url: 'app-resources/scripts/saveArticle.php',
headers: {
"Content-Type": "multipart/form-data"
},
params: {
title: Ext.getCmp('ctTitle').getValue(),
filePdf: Ext.getCmp('ctFile').getValue()
},
callback: function(options, success, response) {
console.log(response.responseText);
}
});
},
现在在saveArticle.php中,我使用$ _FILES来查看上传文件的大小:
$pdf = $_FILES['filePdf'];
此行正在收到错误未定义索引:filePdf
我认为AJAX请求中的params没有发送正确的数据,也许它发送的是普通字符串而不是文件。
有人可以帮我解决这个问题吗?
谢谢!
答案 0 :(得分:1)
我对Sencha不是很熟悉,但就我而言,我知道当你发送一个带有POST方法的表单时,你必须以某种方式对这些数据进行编码才能发送文件。有没有办法将以下属性添加到表单中?:
enctype='multipart/form-data'
通过这种方式,您可以以正确的方式对数据进行编码,以便php了解并能够从$ _FILES中读取文件。
希望这可以帮助您解决问题。