2014-07-16 30 views
1

我使用罰款上傳上傳文件到我的亞馬遜s3,我利用新的圖像縮放選項。在精細上傳文檔它提到:精細上傳 - getFile縮放圖像不是原始

calling getFile on a scaled image will still return the original file. 

是否有可能但是,對於我打電話getFile縮放後的圖像在某種程度上也可能在不同的電話嗎?

原因是提交後,我正在使用html5和fabricjs將圖像繪製到畫布上,並運行到iOS squashed ratio bug,並且當我上傳到s3時,出現了所提及的常見黑客/修補程序的交叉源安全錯誤。我知道如果我可以使用縮放圖像的getFile響應而不是原始的,那麼問題不會出現,因爲圖像足夠小,不會受到Safari的影響。

所以有可能以某種方式調用縮放圖像上的getFile?

我精上傳設置如下:

jQuery("#fine-uploader").fineUploaderS3({ 
    ... 
    scaling: { 
     sendOriginal: false, 
     sizes: [ 
      {name: "ios", maxSize: 500} 
     ] 
    }, 
    objectProperties: { 
     key: function (fileId) { 
      var filename = jQuery('#fine-uploader').fineUploader('getName', fileId); 
      var uuid = jQuery('#fine-uploader').fineUploader('getUuid', fileId); 
      var ext = filename.substr(filename.lastIndexOf('.') + 1); 
      //return item_number + uuid + '.' + ext; 
      return item_number + '.' + ext; 
     } 
    } 
}).on('submitted', function(event, id, name) { 

    var file = jQuery('#fine-uploader').fineUploader('getFile', id); 
    drawOntoCanvas(file); 

}); 

回答

0

你可以通過調用getItemByFileId將得到HTMLElement代表File獲得圖像預覽。

var file = $(this).fineUploader('getItemByFileId',id),

在該元素的嵌套是具有'.qq-thumbnail-selector'類,其具有呈現到一個<img>標籤預覽的元件。我們可以通過jQuery(或本機DOM)來獲得。

var thumbnail = $(file).find(".qq-thumbnail-selector");

最後,圖像渲染到使用drawThumbnail畫布將,正確,把圖像投影到畫布標記。

.on('submitted', function(event, id, name) { 

    var file = $(this).fineUploader('getItemByFileId',id), 
     thumbnail = $(file).find(".qq-thumbnail-selector"); 

    $(this).fineUploader('drawThumbnail', id, $canvas); 

}); 

<canvas id="canvas"><canvas> ... var $canvas = $("#canvas"); $(this).fineUploader('drawThumbnail', id, $canvas);

我通過將'submitted'事件處理程序內的代碼進行了測試

相關問題