2011-10-06 100 views
6

我有一個plupload的上傳表單和plupload div後的布爾值複選框。Plupload,動態更改網址

如果複選框被選中,我想更改plupload中url的值。

這裏是我的代碼

<div id="uploader"> 
    <p>You browser doesn't have Flash, Silverlight, Gears, BrowserPlus or HTML5 support.</p> 
</div> 
<input id="compressFiles" type="checkbox" name="compressFiles" style="margin:10px 0 0 10px;" value="compress" checked="checked" /> 

$(function() { 

$("#compressFiles").change(function(){ 
    if($("#compressFiles").is(':checked')){ 
      compress = 'compress'; 
     } 
     else{ 
     compress = 'no'; 
     } 
}) 

$("#uploader").plupload({ 

    runtimes : 'gears,flash,html5,html4,browserplus,silverlight', 
    url: 'uploadHandler.php?compressFiles=' + compress, 
    max_file_size : '1000mb', 
    max_file_count: 20, // user can add no more then 20 files at a time 
    unique_names : true, 
    dragdrop : true, 
    multiple_queues : true, 

    // Addeb by LG - problem with FF 
    filters: [ 
     {title: "All", extensions: "*"} 
    ], 

    // Rename files by clicking on their titles 
    rename: true, 

    // Sort files 
    sortable: true, 

    // Flash settings 
    flash_swf_url : 'js/plupload.flash.swf', 

    // Silverlight settings 
    silverlight_xap_url : 'js/plupload.silverlight.xap', 
    init : { 
     FilesAdded: function(up) { 
      if($("#compressFiles").is(':checked')){ 
       compress = "no" 
      } 
      else{ 
       compress = "no" 
      } 
    } 
    } 

}); 

// Client side form validation 
$('form').submit(function(e) { 
    var uploader = $('#uploader').plupload('getUploader'); 

    // Validate number of uploaded files 
    if (uploader.total.uploaded == 0) { 
     // Files in queue upload them first 
     if (uploader.files.length > 0) { 
      // When all files are uploaded submit form 
      uploader.bind('UploadProgress', function() { 
       if (uploader.total.uploaded == uploader.files.length){ alert("coucou"); 
        $('form').submit();} 
      }); 

      uploader.start(); 
     } else 
      alert('You must at least upload one file.'); 

     e.preventDefault(); 
    } 
}); 

}); 

url變量的值定義第一次頁面壓縮值負載。我嘗試了1000個thinhs,但在複選框更改時無法刷新url中的壓縮值。

我希望我的問題很清楚,不要說英語很好。

感謝您的幫助

回答

22

只需綁定到「BeforeUpload」事件,您可以更改uploader.settings滿足您的需求。

this.uploader.bind('BeforeUpload', function(uploader, file) { 
    if($("#compressFiles").is(':checked')) { 
    uploader.settings.url = "uploadHandler.php?compressFiles=compress"; 
    } else { 
    uploader.settings.url = "uploadHandler.php?compressFiles=no"; 
    } 
}); 
+0

感謝您的迴應,我一直在尋找「up.setting.url」。現在好了。 – Hugo

+0

我認爲它應該是'uploader.settings.url' – vikki

+0

你是對的。我將進行編輯。 – funwhilelost

1

在plupolad v3 chaging settings.url將無法​​正常工作。你必須使用

uploader.setOption('url', 'your/url/here');