使用$ _FILES php发送其他输入

时间:2009-12-08 03:08:09

标签: php javascript jquery

我使用以下jquery上传文件..

function ajaxFileUpload(jobid) {
    $("#loading")
        .ajaxStart(function () {
        $(this).show();
    })
        .ajaxComplete(function () {
        $(this).hide();
    });

    $.ajaxFileUpload({
        url: 'addjobrpc.php',
        secureuri: false,
        jobID: jobid,
        fileElementId: 'fileToUpload',
        dataType: 'json',
        success: function (data, status) {
            $('#imageid').val(data.imageid);
            if (typeof (data.error) != 'undefined') {
                if (data.error != '') {
                    alert(data.error);
                } else {
                    alert(data.msg);
                }
            }
        },
        error: function (data, status, e) {
            alert(e);
        }
    })

    return false;

}

我的表单看起来像这样......

<form name="form" action="" method="POST" enctype="multipart/form-data">

我用$ _FILES ['fileToUpload'] ['name']获取文件名;但是如何获得不属于文件上传的输入?例如,Jobid是一个隐藏字段,但我似乎无法在addjobrpc中获取该值。

由于

3 个答案:

答案 0 :(得分:2)

你使用的

The particular plugin似乎只支持一个指定的输入元素文件类型而不是整个表单

所以我认为你不能传递其他元素。

答案 1 :(得分:1)

我不熟悉这个插件,但在快速查看源代码后,它似乎无法发送任何其他POST数据。

我建议改用this plugin,这可以让你做这样的事情:

new AjaxUpload('#upload_button_id', {
 action: 'addjobrpc.php',
 name: 'fileToUpload',
 // Additional data to send
 data: {
   jobID:jobid
 },
 // Submit file after selection
 autoSubmit: true,
 responseType: "json",
 onComplete: <success function goes here>
});

然后,您可以使用$_POST['jobID']检索服务器上的数据。

答案 2 :(得分:0)

你设置它的方式然后'jobID'作为参数发送到ajaxFileUpload(),但没有一个jQuery AJAX函数知道如何处理它。但是,考虑到您提供的代码示例,我并没有真正看到任何数据是如何发送到服务器的。你能提供更多代码吗?