当前位置: 首页 > 知识库问答 >
问题:

在Sails.js后端项目中访问上传的图像

易奇希
2023-03-14

我试图做一个上传,然后访问图像。上传进展顺利,将图像上传到Assets/Images,但是当我试图从浏览器http://localhost:1337/Images/Image-name.jpg访问图像时,它会给我404。我只将sails.js用于后端目的--用于API,并且该项目是用--no-front-end选项创建的。我的前端在AngularJS上。

avatarUpload: function(req, res) {
    req.file('avatar').upload({
        // don't allow the total upload size to exceed ~10MB
        maxBytes: 10000000,
        dirname: '../../assets/images'
    }, function whenDone(err, uploadedFiles) {
        console.log(uploadedFiles);
        if (err) {

            return res.negotiate(err);
        }

        // If no files were uploaded, respond with an error.
        if (uploadedFiles.length === 0) {

            return res.badRequest('No file was uploaded');
        }

        // Save the "fd" and the url where the avatar for a user can be accessed
        User
            .update(req.userId, {

                // Generate a unique URL where the avatar can be downloaded.
                avatarUrl: require('util').format('%s/user/avatar/%s', sails.getBaseUrl(), req.userId),

                // Grab the first file and use it's `fd` (file descriptor)
                avatarFd: uploadedFiles[0].fd
            })
            .exec(function (err){
                if (err) return res.negotiate(err);
                return res.ok();
            });
    });
}

http://localhost:1337/images/54CD1FC5-89E8-477D-84E4-DD5FD048ABC0.jpg-gives 404

共有1个答案

壤驷华辉
2023-03-14

发生这种情况是因为应用程序访问的资源不是直接从assets目录访问的,而是从项目根目录中的.tmp目录访问的。

当提升sails时,这些资产会被复制到.tmp目录,因此在提升之后添加的任何内容都不会出现在.tmp中。

我通常做的是上载到.tmp并在完成后将文件复制到assets。这样,Assets不会因为任何原因上传失败而被污染。

让我们知道这是否有效。祝你好运!

更新找到了一个相关的链接。

 类似资料:
  • 本文向大家介绍SpringMVC上传图片与访问,包括了SpringMVC上传图片与访问的使用技巧和注意事项,需要的朋友参考一下 关于springmvc上传图片的方法小编给大家整理了两种方法,具体内容如下所示: 第一种:(放在该项目下的物理地址对应的位置) a. 路径写法: String basePath="/WEB-INF/resources/upload"; String filePathNam

  • 目前我正在做一个项目,我试图上传一个图像从反应前端到Spring启动后端。我能够成功上传我的图像,并将其存储在我的“目标/类/静态/公共/资产”文件夹中。我还将路径存储在我的数据库中,即“/public/资产/image_name.jpg”。构建“. jar”文件后,当我尝试访问图像时,它会给我这个错误消息。但是我能够访问我存储在“/资源/静态/”文件夹中的那些图像。 我知道这是一个配置问题。但我

  • 所以我有一个大型Java项目,我称之为ProjectA。我还有另一个项目,ProjectB,这是一个Maven项目,它包括ProjectA作为依赖项(通过将ProjectA编译为jar文件)。我还有许多其他Maven项目:ProjectC1、ProjectC2等。其中每一个都包括ProjectB作为Maven依赖项。 ProjectB包含所有ProjectC项目通用/可访问的代码,以及从Proje

  • 问题内容: 我有一个像这样的json块: 我如何获取此令牌包含的所有关键项目。例如,从上面的代码中,我希望具有“ ADRESS_LOCATION”,“ LOCATION”,“ FLOOR_NUMBER”和“ self”。 问题答案: 您可以将转换为,然后使用方法获取对象属性的列表。从那里,您可以轻松获得名称。 像这样: 输出:

  • 我要加载图像的文件 pubspec.yaml

  • 问题内容: 根据航行中的这个封闭问题:https : //github.com/balderdashy/sails/issues/835 CRUD蓝图覆盖 “绝对是,这将在v0.10中推出” 我想修改我的sailsjs服务中的蓝图,以允许命名的根(用在余烬中)。目前,我必须使用动作对自定义创建的每个控制器进行自定义,这些动作与蓝图中已存在的动作在很大程度上重复。 我怀疑我现在可以将此代码移出控制器