2009-12-28 30 views
1

我在允許用戶上傳圖片的頁面上使用uploadify,以及在其中發送這些圖片的類別字段。現在,我看到uploadify提供了一個「scriptData」方法,它允許我將關鍵值對發送到uploadify.php腳本。但問題是,scriptData方法抓取頁面加載時的值(uploadify初始化)。因此,當用戶在頁面上更改值時,scriptData仍然只有頁面加載時的默認值。通過uploadify向服務器發送額外的發佈數據時出現問題

反正有這個嗎?

非常感謝!

可能的解決方案:我正在進一步閱讀手冊,發現您可以通過函數調用更改設置。可能在正確的軌道上?

$('#fileInput').uploadifySettings('scriptData', getKeyValuePairs()).uploadifyUpload(); 

現在它的工作..

回答

2

你就需要通過uploadify的回調hoock之一來獲取用戶輸入的當前狀態:或的OnOpen ONSELECT。看到他們的documentation爲正確的。我猜onOpen更可靠,因爲它會在每次上傳開始時檢查用戶輸入的當前狀態。儘管如此,在上傳過程中,您可能需要禁用其他用戶輸入,或者仍然需要用戶提交表單,否則上次上載後完成的任何用戶輸入都將丟失。

無論如何,我發現這個在他們的論壇,這也是我把一個onOpen回調:

$('#fileInput2').uploadifySettings(
'scriptData', 
{'ext':$('#dirTimeStamp').val(), 'ext2':$('#txtEmail').val()} 
); 

最終實現將是(使用演示代碼):

<input id="fileInput" name="fileInput" type="file" /> 
<script type="text/javascript">// <![CDATA[ 
$(document).ready(function() { 
$('#fileInput').uploadify({ 
'uploader' : 'uploadify.swf', 
'script' : 'uploadify.php', 
'cancelImg' : 'cancel.png', 
'auto'  : true, 
'folder' : '/uploads', 
'onOpen' : function(){ 
$('#fileInput').uploadifySettings(
    'scriptData', 
    {'ext':$('#dirTimeStamp').val(), 'ext2':$('#txtEmail').val()} 
    ); 
} 
}); 
}); 
// ]]></script> 
+0

嘿,感謝您花時間幫忙! 我一直在嘗試你的onOpen建議,但它似乎並不想更新默認值..但我會繼續嘗試使用此功能,但。似乎做的方式.. – user239237 2009-12-28 18:12:13

+0

@pixeline:OnSelect工作!但是我用這種方法看到的唯一問題是如果用戶在完成選擇圖像後更改了項目。它不會更新。可能需要在uploadify函數之外創建一個方法! – user239237 2009-12-28 18:20:27

+0

只需註冊一個點擊處理程序和您上傳按鈕,即可更新輸入的設置。點擊(功能(){/ *獲取表單值並更新uploadifySettings * /});''('。upload')。 – prodigitalson 2009-12-28 19:22:19

0

旁邊放更新onOpen中的scriptData的代碼,你也可以在開始上傳之前完成。如果您將auto設置爲false,則可以完成此操作,因此您需要手動撥打uploadifyUpload()

看看在this thread接受的答案。

相關問題