簡體   English   中英

Javascript:如何將文件位置保存到本地存儲?

[英]Javascript: How to save file location to local storage?

在Javascript(帶有Angular 2+)中,我有一個應用程序,試圖在用戶選擇了dataURl之后將其保存到本地存儲中。 目前,我已經嘗試了以下代碼,但是在檢索時,我得到了一個空的obj {}作為主體。

HTML

<input style="display:none;" type="file" (change)="fileEvent($event)" #file>

角度文件存儲和檢索功能

fileEvent(ev: any): void {
    console.log('Event select file', ev);    
    let obj: any = ev.target.files[0];
    let file: File = {
      Key: obj.name,
      ContentType: obj.type,
      Size: obj.size,
      Body: obj      
    };
    localStorage.setItem("myapp", JSON.stringify(file);
}

getFileFromLocalStorage {
     console.log(JSON.parse(localStorage.getItem("myapp"));
}

下面的文件檢索響應

在此處輸入圖片說明

您不能像這樣將圖像直接存儲到本地存儲。 首先,您需要將圖像轉換為Base64。 然后將Base64字符串保存在localStorage值中。

下面是將Image轉換為Base64的函數:

function getBase64Image(img) {
    var canvas = document.createElement("canvas");
    canvas.width = img.width;
    canvas.height = img.height;

    var ctx = canvas.getContext("2d");
    ctx.drawImage(img, 0, 0);

    var dataURL = canvas.toDataURL("image/png");

    return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
}

現在,您可以將其保存到本地存儲中。

這是關於SO的參考答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM