上传文件的文件名

时间:2011-04-11 03:33:49

标签: jquery file-upload

我正在使用Valum文件上传器库。它适用于我,但我需要提供其他参数的文件名。现在我正在做以下事情:

var uploader = new qq.FileUploader({
            element: button,
            allowedExtensions: ['jpg', 'jpeg', 'png'],
            sizeLimit: 2147483647, // max size
            action: '/ControllerNAme/Action',
            multiple: false,
            params: {PostData: GetFileUploadData()},
            onComplete: function(id, fileName, responseJSON){
            //My reload logic here.
            },
        });

function GetFileUploadData() {
        var lFileUploadData = new Object();

        //File note is the id of input with type text, in which I type some notes to file
        lFileUploadData.FileNote = $('#FileNote').val(); 

        return JSON.stringify(lFileUploadData);
    };

但是我一直把这个字段弄空了。

2 个答案:

答案 0 :(得分:1)

您应该使用onchange事件来获取文件名,也许,GetFileUploadData()函数在文件输入尚未被浏览器提交时获取文件名。

我猜以下语句在开头初始化(表示:onload)

var uploader = new qq.FileUploader({
            element: button,
            allowedExtensions: ['jpg', 'jpeg', 'png'],
            sizeLimit: 2147483647, // max size
            action: '/ControllerNAme/Action',
            multiple: false,
            params: {PostData: GetFileUploadData()},
            onComplete: function(id, fileName, responseJSON){
            //My reload logic here.
            },
        });

然后: 致电$('#FileNote').val()

时,GetFifleUploadData()为空

那么,你可以尝试一下这个:

$("#FileNote").change(function(){
    uploader._options.params.PostData = $(this).val();
});

答案 1 :(得分:0)

上传的文件由fileName函数的onComplete参数指定,在上传完成时调用。 然后,您可以将此值传递给服务器(如果需要) params:部分用于作为POST参数发送的参数,发送到上传处理程序URL(在action:部分中指定)