【问题标题】:retrieve uploaded images from the server从服务器检索上传的图像
【发布时间】:2017-02-09 15:12:33
【问题描述】:

我已经将一些图像上传到服务器,我实际上是这样将图像保存给我的用户的:

foto: { name: String, img: String, contentType: String },

因此,当我执行获取请求时,我会在 Angular 中执行 ng-repeat 以获取所有用户,我想显示与用户相关的图像。

获取请求:

$http.get('http://localhost:8080/lojas')
        .success(function (data) {
            $scope.lojas = data;
        })
        .error(function (statusText) {
            $scope.lojas = [];
        });

在这里我得到了所有的数据,甚至是路径,但是我怎样才能在这里访问图像呢?

【问题讨论】:

  • 你上传了属于用户的图片,你有他们的路径。对?访问是什么意思?您不仅需要路径,还需要实际的图像对象?
  • hmmm,我真的不知道我有点困惑,但我想在上面的 get 请求中完成所有操作,是否有足够的完整路径来获取图像?
  • 这取决于您将如何处理图像。拿到图片后,你想做什么?
  • 只显示类似 {{data.path}}
  • 那么你只需要路径

标签: javascript angularjs node.js express multer


【解决方案1】:

以静态方式提供您的资源文件(图像、js、css、...)。

最好这样做,将它们放在一个子目录中,然后在 server.listen 之前添加它

app.use(express.static(__dirname + '/upload'));

(假设上传是包含您的静态文件的文件夹的名称)

如果图片不是用绝对路径保存的,需要在路径名前加上"window.location.href":

<img ng-src="{{window.localtion.href+data.path}}">

【讨论】:

  • 我做到了:app.use(express.static(__dirname + '/public/upload'));因为我的上传文件在公用文件夹中,但我仍然无法获取图像,我试图查看 {{loja.foto.img}} 返回的内容,它告诉我:public\upload\9d23ad67119225b23be04c957111ee5b any tipe?
  • 你的服务器有这个文件吗?
  • 对了,我怎样才能用你知道的绝对路径将图像保存在节点端?
  • 它应该是这样的var os = require("os"); var hostname = os.hostname();,但我不建议您使用主机名保存图像,因为它可能稍后会更改并且您已经使用新的热名称更新了您的数据库
  • 好的,window.location.host\ 对不起我的无知,但我应该把它放在哪里?在控制器端?
猜你喜欢
  • 2015-09-08
  • 1970-01-01
  • 1970-01-01
  • 2015-11-17
  • 2012-11-25
  • 1970-01-01
  • 2013-04-27
  • 2023-03-30
  • 2015-07-13
相关资源
最近更新 更多