【问题标题】:Cannot see uploaded file in sails, and how set up uploaded image location在sails中看不到上传的文件,以及如何设置上传的图像位置
【发布时间】:2020-07-25 09:24:39
【问题描述】:

我在sails中有以下文件上传脚本

  uploadImage: async function (req, res) {
    req.file("postImage").upload(
      {
        dirname: require("path").resolve(sails.config.appPath, "assets/images"),
      },
      function (err, uploadedFiles) {
        if (err) {
          return res.serverError(err);
        }
        if (uploadedFiles.length === 0) {
          return res.badRequest("No file was uploaded");
        }
        var baseUrl = sails.config.custom.baseUrl;
        var mediaURI = require("util").format(
          "%s/assets/images/%s",
          baseUrl,
          uploadedFiles[0].fd
        );
        return res.json({
          message: uploadedFiles.length + " file(s) uploaded successfully!",
          mediaURI: mediaURI,
        });
      }
    );
  },

这成功上传了我的assets/images文件夹中的图片 但是当我尝试在浏览器中打开图片时http://localhost:1337/assets/images/35820a8d-46fa-4a81-bc7b-fc2ca9d07d99.png

显示not found

我试过http://localhost:1337/images/35820a8d-46fa-4a81-bc7b-fc2ca9d07d99.png还是没找到

我的政策是

module.exports.policies = {
  "*": true,
};

【问题讨论】:

    标签: javascript file-upload sails.js


    【解决方案1】:

    错误是因为您在${sails.config.appPath}/assets/images 文件夹中上传了与${sails.config.appPath}/.tmp/public/images 文件夹不同的文件,那么您无法以your-domain/images/an-image.png 的身份直接从您的URL 访问资产文件夹,为此您需要一个控制器来下载存储图像的位置:

    看看这个例子如何使用sails-hook-uploads模块上传文件:

    https://github.com/mikermcneil/ration/blob/master/api/controllers/things/upload-thing.js#L54

    然后如何下载:

    https://github.com/mikermcneil/ration/blob/master/api/controllers/things/download-photo.js#L50

    【讨论】:

    • 我正在使用sails --no-frontend,但在完整的sails应用程序中,我可以查看资产文件夹中的文件
    猜你喜欢
    • 2013-06-23
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-30
    相关资源
    最近更新 更多