fileReader를 통해 text / image file을 확보한다.
- text → fileRead를 통해 read한 data그대로 활용 가능.
- image → fileRead를 통해 read, URL변환 이후에 활용 가능.
기본적으로 fileBuffer, getFile()을 통해 data를 확보하도록 한다.
[fileBuffer] = await window.showOpenFilePicker();
let fileData = await fileBuffer.getFile();
let text = await fileData.text();
textArea.innerText = text;
let fileRead = new FileReader();
//fileReader가 fileData를 먼저 읽어야 한다.
await fileRead.readAsDataURL(fileData);
imageArea.src = fileRead.result;
localStorage를 활용한 data 저장 및 persist
localStorage에 txt/URL data 저장한다.
setItem('key', 'value')
이후 value값을 그대로 가져오기 위해 key값을 활용한다.
localStorage는 browser가 닫혀도 그대로 data는 그대로 유지됨을 기억한다.
localStorage.setItem('recent-txt', text)
localStorage.setItem('recent-image' , fileRead.result);
//console.log(fileRead.result);
//console.log(imageArea.src);
localStorage에 저장되어 있는 data를 전달받고, 이를 그대로 활용한다.
document.addEventListener('DOMContentLoaded', ()=>{
먼저 browser가 닫히거나 새로고침하였을때, data를 가져오도록 하는 logic을 구성한다.
이를 위해 DOMContentLoaded Event
에 대해 addListener
한다.
localStorage.getItem
이후 value값을 getItem을 통해 가져오고, 여기서의 data 값을 화면에서 구현하는데 그대로 활용하면 data persist 할 수 있다.
※ local storage에 data가 저장되어 있는 상태
//when window loaded after file read
document.addEventListener('DOMContentLoaded', ()=>{
let imageDATA = localStorage.getItem('recent-image');
let txtDATA = localStorage.getItem('recent-txt');
if(imageDATA || txtDATA){
textArea.innerText = txtDATA;
imageArea.src = imageDATA;
}else{
return;
}
})
localStorage와 logic은 동일하다.
localStorage.API
→ sessionStorage.API
※ 다만 browser가 종료되면 session storage의 내용은 저장되지 않으며, 이에 따라 logic을 다시 진행해야 한다.
※ session storage의 기본적인 원리는 유저 data를 server 및 DB에 저장하는 것이나, javascript에서 제공하는 API로는 server로의 직접 접근이 불가능한 점 참고할 것.
data persist by using localStorage
https://www.youtube.com/watch?v=8K2ihr3NC40
localstorage/sessionstorage logic
https://webisfree.com/2016-06-24/[%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8]-localstorage-sessionstorage-%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8%EC%97%90-%EC%A0%95%EB%B3%B4-%EC%A0%80%EC%9E%A5
session storage 관련
https://stackoverflow.com/questions/52040445/how-can-we-access-sessionstorage-in-server-side-using-mvc