2016-08-19 27 views
2

我想發送.jog圖像到客戶端,但我失敗了。如何提供圖像到客戶端nodejs和角

app.get('/image', function(req, res){; 


res.sendfile(path.resolve(path.resolve(__dirname,'/Imagepath/image.jpg"))); 

});

在我的角側

$http({ 
    method:'GET', 
    url:'/image', 
    }).then(function (response){ 
    $scope.image= response.data; 


    }) 


<img id="imgid" ng-src="{{image}}" width="500" height="400"/> 

的問題是,該響應是一些二進制數據。我怎樣才能讓它發送可以顯示在img src上的數據。如何在客戶端的服務器文件夾中顯示圖像?謝謝。

回答

0

理解,<img>標籤不通過屬性支持二進制 採購,所以你必須看看另一種解決方案。

你可以嘗試轉換二進制編碼爲Base64在客戶端 使用 TypedArrays 與 ​​ 共同發揮作用。然後你可以使用

<img ng-src="data:image/JPEG;base64,{{myImage}}"> 

回答How to return image from $http.get in AngularJS

所以基本上你需要採取response.data並轉換爲Base64,然後將其分配給$scope.image。之後,您可以使用上面提到的img標籤來顯示它。

1

除非需要將圖像作爲數據發送(例如動態生成),否則您可以將圖像的路徑設置爲src。

假設你正在使用express.js然後你可以它來提供你的圖像作爲靜態內容:http://expressjs.com/en/starter/static-files.html

app.use(express.static('public')); 

,並與存儲在public/images/image.jpg您的角碼的圖像可以只加載圖像:

$scope.image = "/images/image.jpg" 

<img id="imgid" ng-src="{{image}}" width="500" height="400"/> 
相關問題