簡體   English   中英

Javascript文件閱讀器使用--allow-file-access-from-files打開硬編碼的文件名

[英]Javascript filereader open hard-coded filename with --allow-file-access-from-files

我有一些基於用戶輸入加載文件的 javascript:

function openFile(event) {
  var input = event.target;
  var reader = new FileReader();
  reader.onload = function () {
    const result = reader.result.split("base64,")[1];
    // use result
  };
  reader.readAsDataURL(input.files[0]);
}

我想硬編碼文件名。 如果我要寫文件,我會嘗試類似的東西

function openFile2(filename) {
  var reader = new FileReader();
  reader.onload = function () {
    const result = reader.result.split("base64,")[1];
    // use result
  };
  var file = new File([""], filename) // create a new file object for writing (not actually desired)
  reader.readAsDataURL(file);
}

但在這里我正在閱讀,所以我想要一個現有文件,而不是一個新文件。 我發現了幾個類似的問題,其中的答案斷言出於安全原因這是不可能的:

但是,我看到了一些對 Chrome 選項--allow-file-access-from-files引用,該選項似乎旨在覆蓋此安全功能。 我的 javascript 僅供本地使用,因此它只能在 Chrome 中工作並且僅使用此選項是完全可以接受的。 我的問題是我對 javascript 的了解不夠,不知道如何創建用於讀取的文件對象,而且我似乎無法找到有關如何操作的文檔(只是斷言它是被禁止的)。

我的問題:

  1. 正在加載基於硬編碼名稱“禁止”的文件,因為人們可以編寫 javascript,但瀏覽器不會按照指示運行它,或者是“禁止”,因為命令不存在在 JavaScript 中?
  2. 鑒於我的項目僅供本地使用,因此我能夠選擇所需的任何瀏覽器/啟動標志組合(例如帶有--allow-file-access-from-files Chrome),獲得一個最簡單的方法是什么來自硬編碼路徑的 javascript 文件對象(適用於filereader )? 例如,如果不能在純 javascript 中完成,我可以在我的 html 中放入一些與 javascript 掛鈎的內容嗎?

對於您的情況,請考慮使用Tauri Tauri 是一種將 Web 應用程序構建為可執行桌面應用程序的工具。 Tauri 提供API 來訪問本地文件系統

您可以像這樣從固定路徑讀取二進制文件:

import { readBinaryFile } from '@tauri-apps/api/fs';

async() => {
  data = await readBinaryFile("/path/file");
}

Tauri 是 Electron 的輕量級替代品。 對於典型案例,一天之內就可以將 Tauri 集成到現有項目中。

暫無
暫無

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

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