2013-05-01 93 views
0

這個問題涉及到拓寬精細上傳(https://github.com/Widen/fine-uploader精細上傳預覽圖像前上傳 - 的FileReader

我想上傳開始前,顯示圖像的預覽。沒有自動加載。多文件選擇器 - 沒有單個文件輸入元素。

.on('submitted', function(event, id, filename) { 
    $('<img id="pprev'+id+'" src="#" />').appendTo("#previewupload"+id); 
    readURL(this,id);  // WHAT DO I NEED TO USE FOR THIS ? 
} 

... 
manualuploader.fineUploader('uploadStoredFiles'); 

function readURL(input, previewID) { 
    if (input.files && input.files[0]) { 
     var reader = new FileReader(); 

     reader.onload = function (e) { 
      $('#pprev'+previewID) 
      .css("border","10px solid #FF0000") 
      .attr('src', e.target.result); 
     }; 

     reader.readAsDataURL(input.files[0]); 
    } 
} 

,我需要在readURL()初始化使用什麼PARAM?

+0

我不能用罰款上傳,但**這**必須是輸入元素對象,看看這個簡單的小提琴http://jsfiddle.net/IvinvinDominin/un7ua/ – 2013-05-01 14:45:14

+0

nope。 **這**在這裏不起作用。 – Tom 2013-05-01 14:57:28

+0

在你的函數中,這不是輸入,你必須得到它並將它傳遞給函數,看看這裏:http://jsfiddle.net/IrvinDominin/un7ua/2/ – 2013-05-01 15:02:02

回答

3

您需要將代表圖像的任何File對象傳遞給readURL方法。

因此,首先將readURL函數的最後一行更改爲reader.readAsDataURL(file)。另外,爲了便於閱讀,請將第一個參數從input更改爲file

您可以通過getFile API方法獲取特定Fine上傳文件ID的File對象。您可以檢索您的submitted回調File這樣的:

$(this).fineUploader('getFile', id);

然後,正如我所說,通過這個電話(一File)的結果到您的readURL方法使這些建議的修改之後。

請注意,顯示預覽上傳前的原生支持是scheduled feature,但正如您所看到的,由於Fine Uploader的API,這樣做現在並不是很難。另請注意,getFile API方法在非File API瀏覽器(例如IE9及更早版本)中不起作用。