2

我試圖在DotNetNuke中使用Aquantum Multiple File Upload,但我無法使它工作。原因是我無法設置表單標籤。如何爲DotNetNuke使用Aquantum Multiple File Uploader(jQuery插件)?

有沒有人知道如何在不使用窗體標籤的情況下實現插件?

如:樣品顯示如下:

<form id="file_upload" class="file_upload" runat="server"> 
     <div id = "filediv"> 
     <input type="file" name="file" multiple> 
     <button>Upload</button> 
     <div>Upload files</div> 
     </div> 
     <table id="files"></table> ... 
    </form> 

但是我想能夠做到以下幾點:

<div id="file_upload" class="file_upload" runat="server"> 
     <div id = "filediv"> 
     <input type="file" name="file" multiple> 
     <button>Upload</button> 
     <div>Upload files</div> 
     </div> 
     <table id="files"></table> ... 
    </div> 

我使用JavaScript這是一個:

<script> 
     /*global $ */ 
     $(function() { 


      $('.file_upload').fileUploadUI({ 
       url: 'FileUpload.ashx', 
       method: 'POST', 
       uploadTable: $('#files'), 
       downloadTable: $('#files'), 
       buildUploadRow: function (files, index) { 
        return $('<tr><td>' + files[index].name + '<\/td>' + 
         '<td class="file_upload_progress"><div><\/div><\/td>' + 
         '<\/td><\/tr>'); 
       }, 
       buildDownloadRow: function(file) { 
       return $('<tr id="file_'+file.name+'"><td>' + file.name + '<\/td>' 
        + '<td class="file_uploaded">' + 
        '<span class="ui-icon ui-icon-check"><\/span>' + 
        '<\/td><\/tr>'); 

       }, beforeSend: function(event, files, index, xhr, handler, callBack) { 
        if (files[index].size > 500000) { 
         handler.uploadRow.find('.file_upload_progress').html('<span class="ui-icon ui-icon-alert"><\/span>FILE TOO BIG!'); 
         setTimeout(function() { 
          handler.removeNode(handler.uploadRow); 
         }, 10000); 
         return; 
        } 
        callBack(); 
       } 
      }); 
     }); 
    </script> 

謝謝!任何幫助將受到歡迎!

回答

1

查看文檔,看起來您需要使用form來支持IE & Opera,但DNN中唯一可用的form是主要的WebForms之一。您可能需要考慮將FileUpload.ashx行爲移至在web.config中設置的HttpHandler中。然後你可以在DNN之前處理請求(使用jQuery插件上的formData選項向帖子添加某種標誌,然後在你的處理程序中查找)。

看着你的代碼,它似乎應該適用於其他瀏覽器。 first FAQ in the documentation表示您只需要設置url,methodfieldName選項來解決支持它的瀏覽器的表單(因此您可以嘗試設置fieldName並查看是否有幫助)。

你看到什麼問題?任何JavaScript錯誤?你的ASHX處理程序被擊中了嗎?

相關問題