如何将从Sencha Touch应用程序上传的文件传递到php


How to pass a file uploaded from a Sencha Touch app to php?

我正在使用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 读取文件。

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