【问题标题】:how I can prevent res.sendFile changing file path?如何防止 res.sendFile 更改文件路径?
【发布时间】:2019-05-13 11:33:07
【问题描述】:

我正在使用 node.js 并希望将文件发送到前端。所以我指定了我的文件的直接路径,例如: 路径 = "c:/app/A" 当我运行 res.sendFile(path, fileName); 我收到错误:ENOENT:没有这样的文件或目录,stat '/home/projects/c:/app/A' 如何禁用此自动路径添加“/home/projects”部分? 我想用我的代码下载不在我的项目文件夹中的文件。文件在我电脑的不同文件夹中。

【问题讨论】:

  • 如果你能提供你的项目目录结构以及你在哪个文件中执行 res.sendFile
  • 请提交您的代码
  • @Rajesh 我想用我的代码下载不在我的项目文件夹中的文件。文件在我电脑的不同文件夹中。我可以这样做吗?
  • 您的服务器在 Linux 上运行,并试图访问仅在 Windows 中有效的路径。这似乎意味着有两台机器没有共同的文件系统,因此 Linux 无法访问 Windows 的文件系统。

标签: node.js


【解决方案1】:

尝试使用 \\ 作为 Windows 的路径分隔符 (c:\\app\\A) 并阅读有关 Node.js 模块“path”的信息。

【讨论】:

    【解决方案2】:

    所以我只需要使用新的 URL(file:${"c:/app/A"}); 所以它会是这样的:

    let filename = "someName.com"
    let absPath = "c:/app/someName.com";
    fs.writeFileSync(`${filename}`, fs.readFileSync(new URL(`file:${absPath}`)));
    res.download(`${filename}`, `${filename}`)
    

    【讨论】:

      猜你喜欢
      • 2023-01-10
      • 2014-10-17
      • 2022-08-03
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多