1

我正在使用Chrome擴展上的XMLHttp請求將圖像文件上傳到TWITPIC。我需要發送圖像作爲有效載荷。有沒有辦法做到這一點 ?我發現這個鏈接Convert an image into binary data in javascript 但是,這對圖像標籤。我需要一種方法來指定圖像文件路徑並將圖像上傳到TWITPIC。將圖像轉換爲二進制數據或Javascript中的字符串

我來了解FileReader API與HTML 5。有沒有什麼辦法可以使用??。它應該在本地文件上工作。

Chrome擴展程序是否支持FileReader API而不運行本地主機服務器?

回答

-1

你可以用它來獲取使用XMLHttpRequest的圖像的二進制數據,我用它最近出於類似的目的:

var dataToBinary = function(data){ 
    var data_string = ""; 
    for(var i=0; i<data.length; i++){ 
     data_string += String.fromCharCode(data[i].charCodeAt(0) & 0xff); 
    } 
    return data_string; 
}; 

$.ajax("http://some.site.com/myImage.jpg", { 
    success: function(data){ 
     binary = dataToBinary(data); 
     //or: 'binary = data', dataToBinary might not be needed 
    }, 
    mimeType: "text/plain; charset=x-user-defined" 
}); 

和二進制數據存儲在binary變量。

+0

感謝您的回覆。 – Ram 2011-05-12 14:44:44

3

我自己找到了答案。 Chrome擴展不支持HTML 5的FileReader API。因此,下面的代碼工作起來很簡單。

var reader = new FileReader(); 
    reader.readAsDataURL(f); 
+2

這個base64編碼文件,它不是二進制文件,並擴大了大約33%的文件大小,這可能不是問題,但值得考慮。 'readAsBinaryString(f)'會將文件作爲二進制數據返回,但似乎與IE10不兼容。 – Josh 2013-05-16 20:09:27

相關問題