0

我正在使用 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 这条线得到错误Undefined index: filePdf

我认为 AJAX 请求中的参数没有发送正确的数据,也许它发送的是普通字符串而不是文件。

有人可以帮我解决这个问题吗?

谢谢!

4

1 回答 1

1

我对 Sencha 不是很熟悉,但就我而言,我知道当您使用 POST 方法发送表单时,您必须以某种方式对该数据进行编码才能发送文件。有没有办法将以下属性添加到您的表单中?:

enctype='multipart/form-data'

这样,您就可以以适当的方式对数据进行编码,php 将能够理解并能够从 $_FILES 读取文件。

希望这对您的问题有所帮助。

于 2013-11-14T19:02:05.087 回答