2013-02-22 22 views
11

我正在使用Blueimp上傳的jquery-ui版本,我喜歡如何格式化表格並顯示剛剛上傳的文件。但我想將它用作文件管理器,所以我想預先加載現有文件並顯示,而不是像上傳一樣。我怎樣才能做到這一點?到別人解決這個問題的示例鏈接就足夠了。順便說一句,我上傳了幾種不同的文件類型,而不僅僅是圖像。如何預加載現有文件並將其顯示在blueimp上傳表中?

謝謝!

回答

5

我也有同樣的問題。它如何運作並不神奇。我建議檢查UploadHandler.php文件。然後你就可以根據你的需要修改這個插件了。

上述第二篇文章中的代碼只是對上傳器腳本的ajax調用(默認情況下,server/php /文件夾中的index.php)。在$ .ajax對象中,默認情況下,調用方法設置爲「get」。

打開UploadHandler.php文件並轉到類方法「initialize(...)」。你會看到如何處理「獲取」的電話。 UploadHandler調用類方法this-> get(。:。)來準備併發送現有文件的列表。如果您使用其他上傳目錄,則需要將參數傳遞給UploadHänder。只需恰克在url屬性$阿賈克斯的物體,像:

$otherDir = trim($_REQUEST['otherDir']); 
$otherDir_url = [anyURL] .'/'.$otherDir;//so that the files can be downloaded by clicking on the link 

$options = array(
'upload_dir'=> $otherDir, 
'upload_url'=> $otherDir_url, 
); 

$upload_handler = new UploadHandler($options); 
+0

它可以幫助我,謝謝! – Kostanos 2013-10-04 14:23:02

4

在主js文件中找到了代碼......它的工作原理並不明顯。它工作得很好。

// Load existing files: 
$.ajax({ 
    url: $('#fileupload').fileupload('option', 'url'), 
    dataType: 'json', 
    context: $('#fileupload')[0] 
}).done(function (result) { 
    $(this).fileupload('option', 'done').call(this, null, {result: result}); 
}); 
+0

你能解釋你是怎麼做到的嗎?它可以通過一個url變量來完成嗎?像php?foldername = customfolder – VIDesignz 2013-10-16 20:30:35

+0

我完全忘了。 :)我現在用不同的代碼,所以這不是當前的問題。我相信上面的調用做到了,其中ajax url的url實際上是一個落入fileupload的jquery選擇器。 – 2013-10-17 00:40:06

28

或無:

url: $('#fileupload').fileupload('option', 'url')+'?otherDir='+myDir, 

然後創建一個新的UploadHandler對象這樣之前,你應該初始化UploadHandler的選項屬性AJAX調用:

  1. 準備含有現有文件的細節陣列,例如:

    var files = [ 
        { 
         "name":"fileName.jpg", 
         "size":775702, 
         "type":"image/jpeg", 
         "url":"http://mydomain.com/files/fileName.jpg", 
         "deleteUrl":"http://mydomain.com/files/fileName.jpg", 
         "deleteType":"DELETE" 
        }, 
        { 
         "name":"file2.jpg", 
         "size":68222, 
         "type":"image/jpeg", 
         "url":"http://mydomain.com/files/file2.jpg", 
         "deleteUrl":"http://mydomain.com/files/file2.jpg", 
         "deleteType":"DELETE" 
        } 
    ]; 
    
  2. 呼叫完成回調

    var $form = $('#fileupload');   
    
    // Init fileuploader if not initialized 
    // $form.fileupload(); 
    
    $form.fileupload('option', 'done').call($form, $.Event('done'), {result: {files: files}}); 
    
+1

可以添加到文件數組的另一個屬性是'thumbnailUrl',其中包含要顯示的存儲圖像的縮略圖預覽的路徑 – 2014-03-17 14:40:00

+0

不確定這一點,您不希望這些文件在頁面加載時預加載上的文件上傳?這對我來說更有意義。 – 2014-04-15 03:11:08

+0

無視我之前說過的話!這像一個魅力。唯一我不完全理解的是deleteURL ...任何人都可以解釋這一點嗎? – 2014-04-15 03:59:54

1

如果你們看着這個在.NET是幹嘛呢,發現這(對我來說是在application.js中

對於相當新的版本中,有一個函數

// Load existing files: 
$.getJSON($('#fileupload form').prop('action'), function(files) { 

files = somethingelse; 

    var fu = $('#fileupload').data('fileupload'); 
    fu._adjustMaxNumberOfFiles(-files.length); 
    fu._renderDownload(files) 
     .appendTo($('#fileupload .files')) 

     .fadeIn(function() { 
      // Fix for IE7 and lower: 
      $(this).show(); 
     }); 
}); 

中的application.js 我d內雖然它的.NET,但實際上需要這消失了。

然後根據你想展示的東西設置你的文章或文件或「」。如果你刪除行文件= somethingelse,那麼它會預先加載文件夾中的所有文件。

相關問題