2011-09-06 55 views
1

我用我的網站上Uploadify劇本,我正在嘗試設置基於某些表單域scriptData參數。這是HTML/JS:Uploadify沒有經過scriptData參數

<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 & Upload

回答

0

Aaargh,所以我只是沒有read the doco properly,我這樣做是爲了設置scriptData

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

當我需要的是做了

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

現在它

+0

我跑進了事情後編輯表單域試圖設置'scriptData'在'$(X).uploadify()'調用。即使TFM表示應該這樣做,我也無法使其工作。 –

2

我有同樣的問題。我的解決辦法是添加一個onSelectOnce處理程序,建立相應的scriptData對象,然後叫uploadifySettings進行安裝。像這樣的東西應該在你的情況下工作:

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

有點kludge,但它得到它爲我工作。

+0

可悲的是沒有幫助,我也不能保證當用戶將選擇在表單中的文件,以便他們可以選擇文件 –