我很難找到如何將上傳的圖像存儲在localStorage中,如用戶在我的選項頁面中輸入的內容。沒有太多的文件說明如何做,因爲一段時間它是一個known error,我無法找到堆棧上的任何示例。有一些關於如何在頁面上保存圖像但沒有輸入圖像的例子。將上傳的圖像保存到localStorage(chrome擴展名)
我所擁有的僅僅是HTML,但我想象在後面運行的JavaScript需要訪問輸入值或其他內容(?)。
<input id="uploadImage" type="file" accept="image/*" />
然後在用戶選擇一個文件後,輸入的值是C:\fakepath\some_image.jpg
。如果可能,我不想存儲文件路徑,但存儲實際圖像。
$("#uploadImage").change(function(){
alert($("#uploadImage").val());
});
編輯:
我發現如何從this stack topic做一個樣本,但文件路徑,我從$("#uploadImage").val()
不工作得到(所以我不知道如果這個方法工作的工作,即使文件路徑爲有效)
var img = new Image();
img.src = $("#uploadImage").val();
img.load = function() {
var canvas = document.createElement('canvas');
document.body.appendChild(canvas);
var context = canvas.getContext('2d');
context.drawImage(img, 0, 0);
var data = context.getImageData(x, y, img.width, img.height).data;
localStorage['uploadedImage'] = data; // save image data
};
所以在這之後我很困惑。您將圖像數據作爲字符串存儲在localStorage中(正確?)。然後爲了構建一個圖像(並且爲了我的目的,將它設置爲背景),它看起來像 - '$('body')。css({「background」:localStorage ['foo']});' – Jordan
@Jordan更新了我的答案,沒有時間去測試它,讓我知道你是否仍然有問題。 –
非常感謝!這不是我所需要的全部,但你給了我一個工作的例子,我能夠從那裏去 – Jordan