图片已上传但在UI中未显示=>帆js

时间:2018-03-01 06:50:17

标签: node.js sails.js

图片已上传到资源文件夹中,但在UI中不可见。当我重新启动服务器然后我可以看到图像。

问题:图片仅存储在资源中,但未存储在.tmp文件中。

重新启动服务器时,.tmp会读取资源文件夹中的所有文件,但上传图片时不会发生这种情况。

这是我所面临的情况。

这是我试图解决的代码:

var file = req.file('logo'); 
file.upload({ dirname: '../../assets/images' }, function onUploadComplete (err, files) { 
    if (err) { 
        console.log("something went wrong") ;
    } else { 
        console.log("File has uploaded successfully");
    }
});

1 个答案:

答案 0 :(得分:1)

重新启动服务器后看到文件的原因是由于grunt任务将资产复制到.tmp文件夹中。因此,您可能需要采取一些措施来解决问题:

  1. 在onUploadComplete回调中自己将文件复制到.tmp文件夹。
  2. 设置grunt以监视更改,但我认为这不适合生产。
  3. 上传时将文件从服务器移动到其他存储库服务(例如,我使用AWS的S3服务)。顺便说一句,我认为这是您将静态资产与上传内容分离后的最佳选择 - 如果您需要重新部署服务器,则可能会丢失上传的图像。
  4. 您始终可以将图像保存为数据库中的base64编码字符串,因此不会出现路径,文件系统操作等问题,但会对数据库造成很大负担。