Uploadify没有通过scriptData参数

时间:2011-09-06 02:18:54

标签: jquery file-upload uploadify

我在我的网站上使用Uploadify脚本,我正在尝试根据某些表单字段设置scriptData参数。这是HTML / JS:

<script type="text/javascript">

    function UploadFile() {
        $('#file_upload').uploadifySettings({
            scriptData: $('#uploadForm').serializeObject()
        });

        $('#file_upload').uploadifyUpload();
    }

    $(document).ready(function () {
        $('#file_upload').uploadify({
            'uploader': '/Scripts/uploadify/uploadify.swf',
            'script': '/File/Upload',
            'cancelImg': '/Scripts/uploadify/cancel.png',
            'folder': '/uploads',
            'fileExt': '*.doc, *.pdf',
            'buttonText': 'Select File',
            'auto': false,
            'onSelect': function (event, ID, fileObj) {
                $('#uploadForm #FileName').val(fileObj.name);           
            }
        });
    });
</script>
<form id="uploadForm">
<div><label for="Description">Description</label> <input id="Description" name="Description" type="text" value="" /></div>
<div><label for="FileName">File Name</label> <input id="FileName" name="FileName" type="text" value="" /></div>    <input id="file_upload" name="file_upload" type="file" />
<button onclick="UploadFile();" type="button">Upload</button>
</form>

serializeObject只是使用serializeobject jQuery插件将表单值转换为json对象

上传文件正常,但scriptData中没有任何内容被发送。我查了一下小提琴手唯一的表单值来自uploadify脚本:folderfileextFiledata&amp; Upload

3 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。我的解决方案是添加一个onSelectOnce处理程序,用于构建相应的scriptData对象,然后调用uploadifySettings来附加它。这样的事情应该适合你的情况:

onSelectOnce: function() {
    var data = $('#uploadForm').serializeObject();
    $('#file_upload').uploadifySettings('scriptData', data);
    return true;
}

有点像kludge,但它让它为我工作。

答案 1 :(得分:0)

Aaargh,所以我没有read the doco properly,我这样做是为了设置scriptData

$('#file_upload').uploadifySettings({
    scriptData: $('#uploadForm').serializeObject()
});

当我需要做的是

$('#file_upload').uploadifySettings('scriptData', $('#uploadForm').serializeObject());

现在有效

答案 2 :(得分:0)

我穿这个:

 'formData' : {
 'data'      : 'Hello Word',
 'timestamp' : '2020-05-30 16:06:30',
 'token'     : '59284aa85709ddaf3bd246030060f6a2'
},