【问题标题】:sails.js: download file in assets directorysails.js:下载资产目录中的文件
【发布时间】:2015-04-01 13:44:55
【问题描述】:

我在 assets/xls 目录中创建了一个 .xls 文件:

fs.writeFileSync('./assets/xls/data.xls', xls, 'binary');

我想下载这个文件:

获取文件地址:

var downloadLink = req.headers.host+'/xls/data.xls';

我不明白为什么我在这个网址上有 404 错误:
本地主机:1337/xls/data.xls

【问题讨论】:

  • 并且文件存在于 ./assets/xls/ 下?
  • 是的,文件存在
  • 抱歉它存在于您的项目文件夹或您的网络部署文件夹 .tmp/public/xls/ 下?因为如果它仅在您的项目文件夹下,则有 404 是正常的
  • 我多次重启我的服务器。我认为这是一个错误,因为经过 10 次尝试,我的文件终于在 .temp 目录中。
  • 我认为你必须做 fs.writeFileSync(sails.config.appPath + "/public/xls/data.xls", xls, 'binary');直接写在临时文件夹下

标签: download sails.js assets


【解决方案1】:

这不是存储生成的或用户上传的文件的推荐做法。 assets 文件夹仅用于您网站的前端资产。

如果您想在应用中提供下载链接,建议您将它们保存在单独的位置,并添加一个控制器操作,将请求的文件流式传输到客户端。这允许您添加策略来保护这些文件,并避免源代码控制和 Grunt 问题。有关此类控制器操作的示例,请参见 How do I authenticate access to assets folder in sails.js

【讨论】:

    猜你喜欢
    • 2017-02-24
    • 2019-05-12
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 2015-08-29
    • 2019-02-19
    • 1970-01-01
    相关资源
    最近更新 更多