2016-04-10 5 views
0

Я использую угловое выражение для запроса http.get для получения изображения, которое я сохранил на бэкэнд. Проблема в том, что я получаю ее, я не знаю, как ее отобразить. Вот мой код:Угловое: изображение не будет отображаться после получения

Node:

getImage = function(req, res){ 
    res.setHeader('Content-Type', req.query.mimetype) 
    fs.createReadStream(path.join('./uploads/', req.query.filename)).pipe(res) 
} 

Угловая

$http.get("/getImage/", {params: {"filename" : $scope.recipe.image.filename, "mimetype" : $scope.recipe.image.mimetype}}) 
.then(function(returnData){ 
    $scope.image = returnData.data; 
}) 

HTML:

<img ng-src="{{image}}"> 

Я использовал console.log, чтобы попытаться показать то, что возвращается, и это это то, что я получаю:

enter image description here

Я предполагаю, что это изображение, но опять же, я не знаю, как правильно его отображать. Какие-нибудь советы?

ответ

0

Глядя на то, что вы пытаетесь сделать. Вы должны получить filename-url этого изображения, а не использовать фактическое «изображение», когда используете его. <img ng-src="{{image}}"> tag

+0

Но как отправить параметры обратно для получения правильного изображения? Потому что URL-адрес - это просто '/ getImage /'. И если я попытаюсь использовать путь к изображению, это просто дает мне ошибку 404. – user5854440

+0

Если вы не знаете фактический путь к изображению, то, возможно, комментарий, сделанный Дэниелом Беком, является возможным решением для вас. – starcorn

0

Я думаю, что для ваших целей вы должны использовать загрузку асинхронного изображения. Таким образом, вы можете использовать deffered объекты: Asynchronously load images with jQuery пожалуйста, смотрите на «phpcoding» ответить

0

Вы получаете байтовый массив из базы данных, использовать

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

Добавить санитарную обработку фильтра для данных не может быть помечены как небезопасная угловым

$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|file|ftp|blob):|data:image\//);