我在我的网站上使用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脚本中的值:folder
,fileext
,Filedata
和Upload
。
我遇到了同样的问题。我的解决方案是添加一个onSelectOnce
处理程序,该处理程序将构建适当的onSelectOnce
对象,然后调用scriptData
进行附加。这样的事情应该适合您的情况:
scriptData
有点纠结,但它对我有用。
Aaargh,所以我没有设置uploadifySettings
,我这样做是为了设置uploadifySettings
:
onSelectOnce: function() {
var data = $('#uploadForm').serializeObject();
$('#file_upload').uploadifySettings('scriptData', data);
return true;
}
当我需要做的是]
read the doco properly现在可以使用
我穿这个: