Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取Sails.JS中上传图像的下载url_Javascript_Node.js_Rest_File Upload_Sails.js - Fatal编程技术网

Javascript 获取Sails.JS中上传图像的下载url

Javascript 获取Sails.JS中上传图像的下载url,javascript,node.js,rest,file-upload,sails.js,Javascript,Node.js,Rest,File Upload,Sails.js,我正在编写Sails.js中的一个Api,在这里我需要通过Api将图像上传到服务器,并从移动应用程序中获取上传图像的url供以后使用。为此,我的上传代码如下 upload: function (req, res) { var uploadPath = '../../assets/images' ; req.file('avatar').upload({ dirname: uploadPath },function onUploadComplete (err, files) {

我正在编写Sails.js中的一个Api,在这里我需要通过Api将图像上传到服务器,并从移动应用程序中获取上传图像的url供以后使用。为此,我的上传代码如下

upload: function  (req, res) {

    var uploadPath = '../../assets/images' ;
    req.file('avatar').upload({ dirname: uploadPath },function onUploadComplete (err, files) {

        if (err) {
            return res.serverError(err);
        } else {
            var image = files[0];
            var fd = image.fd ;
            var index = fd.lastIndexOf('/');
            var imageName = fd.substring(index+1 , fd.length);
            return res.json({ image : '/images/' + imageName });
        }
    });
}
这给了我如下的结果

{
    "image": "/images/bc4f03ec-0d9c-4553-b59a-9ddec427a265.jpg"
}
如果我像这样用本地主机附加路径

http://localhost:1337/images/bc4f03ec-0d9c-4553-b59a-9ddec427a265.jpg
download: function (req, res) {
    res.sendfile(req.path.substr(1));
},
它可以工作,并且图像正在浏览器中加载。但当我将我的应用程序部署到生产服务器时,它不工作,并给我404错误

为了解决这个问题,我已经编写了另一个这样的get操作

http://localhost:1337/images/bc4f03ec-0d9c-4553-b59a-9ddec427a265.jpg
download: function (req, res) {
    res.sendfile(req.path.substr(1));
},
路线入口在哪里

 'get /images/*' : {
        controller : 'FileController',
        action : 'download'
    }
但这没用,我在本地主机上得到了404


有人能建议我如何解决这个问题吗

你似乎有一个
咕噜声
问题。实际上,您的中提供的文件位于.tmp/public/images/中,并且grunt任务正在将资产文件夹与tmp文件夹同步

尝试在项目文件夹中运行
grunt
命令,如果不起作用,请尝试
npm安装grunt
有时全局npm安装的grunt不起作用

还要确保grunt可以写入文件夹
.tmp
;)

这里还有两个帖子可能会有所帮助

谢谢你,伙计,但我用skipper gridfs解决了这个问题。