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

angular客户端无法使用上载路径显示来自express nodejs后端的图像

蒋何平
2023-03-14

这个在angular客户端上显示图像的问题困扰了我很久,甚至在看了很多类似的问题之后也是如此。文件成功上载到上载文件夹,文件详细信息存储在mongodb数据库中。

这是angular Client。加载图像数据服务或出厂后的angular V1.6。

$scope.attachImages.push({
    name: attachment.originalName,
    filePath:attachment.upload_path
  })

那么html网页就有了这一点,我使用ng-src作为图像上传路径。

<div layout = "column" ng-repeat ="image in attachImages">
               <h5>{{image.name}}</h5>
                 <img ng-src="{{image.filePath}}"/>
            </div>

但我得到的错误是它无法加载图像:

获取http://localhost:3010/client/upload/attachment/lion.jpg 404(找不到)

这是我在express nodejs后端服务器上所做的

router.get('/attachments/:cardId', function(req,res){
   //load teh attachemnts from the db... imageId,
   /// To get all the images/files stored in MongoDB
    Attachment.find({card: req.params.cardId}, function(err,images){
         if (err) {
            res.json({"success": false, "message": 'Error finding the attachments'})
         } else {
           res.json({"success": true, "message": images})

//对于单个图像..router.get(“/attachments/:CarDID/:attachmentID”,function(req,res){

           Attachment.findOne({_id: req.params.attachmentId}, function(err, image){
                if (err) {
                    res.json({"success": false, "message": 'ERror in finding the image'})
                } else {
                     if (image) { //atleast there z content
                        //set the content-type correctly so our client or browser know how to handle it.
                         res.setHeader('Content-Type', image.mime);
                        //fs.createReadStream(path.join(UPLOAD_PATH, result.filename)).pipe(res);
                         //fs.createReadStream(path.join()).pipe(res);
                          res.send(image.upload_path);
                     }else {
                       res.json({"success": true, "message": 'No image data found'})
                     }
                }
           })

      });

如有任何帮助,我们将不胜感激...然后稍后我将讨论createObjectURL方法,它除了杂乱无章的数组数据之外不显示任何内容。

共有1个答案

狄富
2023-03-14

我意识到我在加载图像时在文件路径上犯了一个错误。在发送图像之前,最好先测试一下是否可以在浏览器中从它们的上传路径加载图像。只是在加载路由之前放入这个express静态处理程序,在努力加载图像一周之后,我就得救了。

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

然后加载快速路由

//var user = require('./routes/user') //user routes 
board = require('./routes/board'), 

然后在angular客户端上

if(attachName.match(/\.(jpg|jpeg|gif|png)$/)){ //u borrowed this from helper in nodejs
                                      //console.log('yeah it z the image')
                                      //$scope.attachImages.push(attachment);
                                       $scope.attachImages.push({
                                           name: attachment.originalName,
                                           imageUrl: attachment.upload_path
                                       })
 类似资料:
  • 问题内容: 我正在使用一些示例代码,该代码使我可以将消息从Python客户端发送到Android服务器(TCP)。但是,仅在关闭客户端后,该消息才会显示在Android仿真器上。 我可能缺少tcp套接字(首​​次使用和实现)背后的一些基本知识。 我的主要目的是使Android App中的按钮可以在单击时将不同的消息发送到单独的Linux系统上的Python客户端,并且Python客户端在收到该消息

  • 下面是AWS Ec2中Mongo的副本设置,io1(10000 iops)和r4。8XL码 1个主节点、1个辅助节点、1个仲裁节点 我们有2种类型的应用程序写入/读取Mongo,几乎数据接近2亿 现在,我们从Mongo获得readtimeout/sockettimeour,而application1在Mongo上几乎没有写操作,而application2在Mongo上执行大量写操作 Applica

  • CORS在服务器上运行良好,并按预期工作。我尝试用angular HTTPClient向服务器的RESTAPI发送请求,但收到一个CORS错误。如果服务器上启用了CORS,为什么会出现此错误?这对客户来说不是很好吗?

  • 我使用的是Jersey 2.28,想要编写一个客户端来上传1Gb的文件,而客户端JVM堆不能超过256Mb。 我在这里有什么选择? 我试着用下面的代码片段,但结果是OOM,因为Jersey似乎一直在尽可能多地从InputStream中读取数据。为了处理大量输入,可以指示球衣进行冲洗吗?

  • 我试图在此应用程序中设置谷歌Oauth。我已经为远程和正式服创建了配置。它在开发环境中工作正常,但在生产环境中出现了这个错误,即Heroku。 收到此错误: 从这个终点: https://vast-ridge-80091.herokuapp.com/auth/google 这是我对生产环境的配置设置 我已经更新了heroku应用程序设置中的env变量,并仔细检查了所有内容,这些凭证是正确的。 这是

  • 我有一个基本的烧瓶应用程序上传图像文件到服务器,然后在网页上渲染。当多个客户端上传时,在当前的设计中,它们最终覆盖相同的静态资产。当在flask中处理来自多个客户端的上传时,最好的方法是什么?