Html 恢复角度为8的图像的完整路径

Html 恢复角度为8的图像的完整路径,html,angular,typescript,progressive-web-apps,indexeddb,Html,Angular,Typescript,Progressive Web Apps,Indexeddb,我正在用PWA在Angular 8中构建一个应用程序。这是一种旅行退款,用户通过应用程序发送发票图片。然后在联机时保存到数据库中,如果用户脱机,应用程序将保存在IndexedDb中。当再次联机时,应用程序会在IDB中查找待上传的内容,然后进行查找。我不想保存图像本身,因为在某些浏览器中,IDB的缓存内存有限,所以我选择保存图像路径,以便应用程序以后可以找到它 当我的问题出现时,我尝试在IDB中保存图像完整路径,以便在以后联机时获取它,但出于安全原因,某些浏览器不允许这样做。那么,还有另一种方法吗

我正在用PWAAngular 8中构建一个应用程序。这是一种旅行退款,用户通过应用程序发送发票图片。然后在联机时保存到数据库中,如果用户脱机,应用程序将保存在IndexedDb中。当再次联机时,应用程序会在IDB中查找待上传的内容,然后进行查找。我不想保存图像本身,因为在某些浏览器中,IDB的缓存内存有限,所以我选择保存图像路径,以便应用程序以后可以找到它


当我的问题出现时,我尝试在IDB中保存图像完整路径,以便在以后联机时获取它,但出于安全原因,某些浏览器不允许这样做。那么,还有另一种方法吗?

正如talhature所提到的,不可能保存URL。这也是由于安全原因,网站不应该能够读取文件系统

您可以检索如下所示的文件:

HTML:

如果能够将Blob持久化到localstorage,则可以使用联机和脱机事件来区分:

 let online = window.navigator.onLine;

 function handleOnline() {
   const data = JSON.parse(localStorage.getItem('data'));
   
   // post to backend

   localSorage.setItem('data', null);
   online = true;
 }

 function setData(data) {
   if (online) {
     
   // post to backend
   
   } else {
      localSorage.setItem('data', JSON.parse(data))
   }
 }

 window.addEventListener('online',  handleOnline);
 window.addEventListener('offline', () => online = false);

如talhature所述,无法保存URL。这也是由于安全原因,网站不应该能够读取文件系统

您可以检索如下所示的文件:

HTML:

如果能够将Blob持久化到localstorage,则可以使用联机和脱机事件来区分:

 let online = window.navigator.onLine;

 function handleOnline() {
   const data = JSON.parse(localStorage.getItem('data'));
   
   // post to backend

   localSorage.setItem('data', null);
   online = true;
 }

 function setData(data) {
   if (online) {
     
   // post to backend
   
   } else {
      localSorage.setItem('data', JSON.parse(data))
   }
 }

 window.addEventListener('online',  handleOnline);
 window.addEventListener('offline', () => online = false);
 let online = window.navigator.onLine;

 function handleOnline() {
   const data = JSON.parse(localStorage.getItem('data'));
   
   // post to backend

   localSorage.setItem('data', null);
   online = true;
 }

 function setData(data) {
   if (online) {
     
   // post to backend
   
   } else {
      localSorage.setItem('data', JSON.parse(data))
   }
 }

 window.addEventListener('online',  handleOnline);
 window.addEventListener('offline', () => online = false);