cqwcns 发表于 2022-7-1 22:26

JS FileReader读取本地文件的问题

以下Demo可以通过结合input:file来读取CSV文件。
但我只是希望每次使用时,直接读取根目录的data.csv文件就行,不要每次都手动选择再读取。
等于我直接不要input:file,直接用文件的相对路径,是否可以实现?
我自己试了一下不行。
请各位指教,感谢。

<!DOCTYPE html>
<html>
    <head>
      <meta charset="utf-8" />
      <title>读取 CSV(Comma-Separated Values)文件</title>
    </head>
    <body>

      <input type="file" accept="text/csv" />

      <progress value="0"></progress>

      <script type="text/javascript">
            window.onload = (event) => {
                // console.log(event);
                main();
            }
            
            function main() {
                var inputFile = document.querySelector("input");
               
                inputFile.onchange = (event) => {
                  // console.log(event);
                  var file = inputFile.files;
                  
                  var fileReader = new FileReader();
                  fileReader.readAsText(file, "utf-8");
// fileReader.readAsText('d:/满意度测试数据.csv', "utf-8");
                  
                  // 显示进度
                  var progress = document.querySelector("progress");
                  progress.max = file.size;
                  progress.value = 0;
                  fileReader.onprogress = (event) => {
                        // console.log(event);
                        progress.value = event.loaded;
                  }
                  
                  fileReader.onload = (event) => {
                        console.log(event, fileReader);
                        var result = fileReader.result;
                        console.log(result); // 读取的结果
                  }
                }
            }
      </script>
    </body>
</html>

ReLoading 发表于 2022-7-1 22:52

浏览器是没有这种权限的
如若真如你所想
岂不是病毒木马满天飞?

不苦小和尚 发表于 2022-7-2 08:08

一打开网页就偷你文件,你电脑不裸奔了

subney 发表于 2022-7-2 08:21

不可能, 读取文件的API, 必须要求用户用操作确认, 哪怕是一次鼠标点击.
文件选取后, 只能得到文件的相对路径, 以及一个文件引用.
要想跳过选取, 可以将文件内容保存在LocalStorage中
或者将文件引用保存起来, 这个没验证过是否可行

嘿i你的益达 发表于 2022-7-2 09:06

nodejs可以

水木杉 发表于 2022-7-2 10:07

读取csv的目的是什么呢?如果只是需要保存少量的本地配置信息可以直接存在浏览器的数据库里 LevelDB

cqwcns 发表于 2022-7-2 12:01

原来计划做一个本地web应用的,看来只能挂服务器了。

谢谢各位

笨笨家的唯一 发表于 2022-7-2 12:35

后端才可以实现你说的功能,浏览器不允许这样操作
页: [1]
查看完整版本: JS FileReader读取本地文件的问题