Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript node.js express外部图像推送到客户端_Javascript_Image_Node.js_Express - Fatal编程技术网

Javascript node.js express外部图像推送到客户端

Javascript node.js express外部图像推送到客户端,javascript,image,node.js,express,Javascript,Image,Node.js,Express,我对这件事感到很难过。如果我有一个外部图像url。例如,这是来自IMDb.com的图片url。我如何才能将此图像发送到客户端 目前,我正在做: res.write('<img src="/http://ia.media-imdb.com/images/M/MV5BMTMyMzA5ODIzMV5BMl5BanBnXkFtZTcwNzE2NDM1Mw@@._V1_SY317_CR52,0,214,317_.jpg"></img>'); res.write(“”); 但它没

我对这件事感到很难过。如果我有一个外部图像url。例如,这是来自IMDb.com的图片url。我如何才能将此图像发送到客户端

目前,我正在做:

res.write('<img src="/http://ia.media-imdb.com/images/M/MV5BMTMyMzA5ODIzMV5BMl5BanBnXkFtZTcwNzE2NDM1Mw@@._V1_SY317_CR52,0,214,317_.jpg"></img>');
res.write(“”);
但它没有显示,我只是得到了一个破碎的图像

更新:

我最终做了这件事来让它发挥作用:

var url = http://ia.media-imdb.com/images/M/MV5BMTMyMzA5ODIzMV5BMl5BanBnXkFtZTcwNzE2NDM1Mw@@._V1_SY317_CR52,0,214,317_.jpg; 

var loadBase64Image = function (url, callback) {
    var request = require('request');
        request({url: url, encoding: null}, function (err, res, body) {
        if (!err && res.statusCode == 200) {
            var base64prefix = 'data:' + res.headers['content-type'] + ';base64,'
            , image = body.toString('base64');
                if (typeof callback == 'function') {
                 callback(image, base64prefix);
                }
            } else {
        throw new Error('Can not download image');
        }
});
}; 

loadBase64Image(imageUrl, function (image, prefix) {
    res.write('<img src="' + prefix + image + '"/>');
});
var url=http://ia.media-imdb.com/images/M/MV5BMTMyMzA5ODIzMV5BMl5BanBnXkFtZTcwNzE2NDM1Mw@@._V1_SY317_CR52,0214317_.jpg;
var loadBase64Image=函数(url,回调){
var请求=要求(“请求”);
请求({url:url,编码:null},函数(err,res,body){
如果(!err&&res.statusCode==200){
var base64prefix='data:'+res.headers['content-type']+';base64,'
,image=body.toString('base64');
if(回调类型=='function'){
回调(图像,base64prefix);
}
}否则{
抛出新错误('无法下载图像');
}
});
}; 
loadBase64Image(图像URL,函数(图像,前缀){
res.write(“”);
});
试试这个:
res.write(“”)

图像标签是自动关闭的。没有结束标记。

IMDB为该图像URL返回403(禁止)HTTP状态。我的猜测是IMDB根据请求的引用阻止了图像。这通常用于防止深度链接到资源,这样一个网站就不能从其他网站“窃取”带宽/内容。即使显示一个损坏的图像,但直接在浏览器中加载图像URL也可以

<img src="http://ia.media-imdb.com/images/M/MV5BMTMyMzA5ODIzMV5BMl5BanBnXkFtZTcwNzE2NDM1Mw@@._V1_SY317_CR52,0,214,317_.jpg"/>


解决方案是不使用IMDB图像,因为它们不提供公共链接。

src url中的前导/怎么办?哦,糟糕!那是个意外。但是,即使没有/它仍然显示一个坏的形象。我会投票给这个答案,但我需要一个15或更高的声誉!我知道这是一个延迟响应,但谢谢!