我正在使用Sencha Touch + PHP构建一个应用程序。
在Sencha Touch中,我制作了这个表格:
xtype: 'fieldset',
items: [
{
xtype: 'textfield',
id: 'ctTitle',
name: 'title',
label: 'Title'
},
{
xtype: 'filefield',
id: 'ctFile',
name: 'filePdf',
label: 'File'
}
]
在我的控制器中,有一个将文件提交到 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'];
bu 此行收到错误 未定义的索引: 文件pdf
我认为 AJAX 请求中的参数没有发送正确的数据,也许它发送的是普通字符串而不是文件。
有人可以帮我解决这个问题吗?
谢谢!
我对Sencha不是很熟悉,但就我而言,我知道当您使用POST方法发送表单时,您必须以某种方式对该数据进行编码才能发送文件。有没有办法将以下属性添加到表单中?
enctype='multipart/form-data'
通过这种方式,您可以以正确的方式对数据进行编码,php 将理解并能够从 $_FILES 读取文件。
希望这对您的问题有所帮助。