CNode

【问】node如何读取本地图片并显示在浏览器

问答
AASCII26发布于12 年前最后回复8 年前16 回复23262 浏览0 收藏

如题,我折腾了好久啊,简直是无头绪啊。。。。附上代码,各位大神帮忙看看怎么搞: var http = require('http'), fs = require('fs');

fs.readFile('./avatar.jpg','binary',function(err, file) { if (err) { console.log(err); return; }else{ http.createServer(function(req, res) { res.writeHead(200, {'Content-Type': 'image/jpeg'}); res.write(file,'binary'); res.end(); return; }).listen(8888); } });

查看回复

回复 (16)

J
jingxinxin#1·9 年前

运行正常

U
uuoocckk-983#2·8 年前

很多图片怎么办啊

T
tolerious#3·12 年前

顶。

T
tolerious#4·12 年前

报错么?

A
ASCII26#5·12 年前

不报错。。。各种正确。。

S
suinia#6·12 年前

运行能显示啊

A
ASCII26#7·12 年前
引用 suinia运行能显示啊

@suinia 啊!!!!为啥。。。。我愁好几天了,是哪里出了问题?

S
suinia#8·12 年前
引用 suinia运行能显示啊

@ASCII26 是不是你图片本来就有问题...

A
ASCII26#9·12 年前
引用 suinia运行能显示啊

@suinia 我发现,好像是图片路径的问题,我把图片放在和此文件同一目录下,引用时候用'./avatar.jpg',理论上不应该是对的吗? 可是事实上不对,我得把路径写到上一层,像这样“./test/avatar.jpg”才能引用到图片。。。。为啥?入口函数怎么会跑到上层去了? 明明test.js也是在'./test/test.js'的啊。。

X
xyc200522#10·12 年前

在linux里跑了,表示正常,node版本号:v0.10.18

A
ASCII26#11·12 年前

我按照我刚刚理解的那个原理,试着寻址test.js上一级兄弟目录下的图片,又出不来了。。。。这。。。谁能给我讲清楚Node的寻址原理。。。

S
suinia#12·12 年前
引用 suinia运行能显示啊

@ASCII26 我直接copy你代码没问题的 如果换一个路径找不到 就报错了:window7环境下 [Error: ENOENT, open 'E:\lizhi_project\node\podcast_1.jpg']

W
wuliao49#13·12 年前

没看你的代码,但我很好奇为啥你会有这个需求? 一般来说直接让nginx或者apache来处理静态文件不就好了吗? 你要嫌麻烦, 直接用express处理也简单,一行代码搞定。 自己为啥要重复造蹩脚的轮子呢?

A
ASCII26#14·12 年前
I
ijse#15·12 年前

fs.createReadStream('./mypic.png').pipe(res);

H
hades#16·12 年前
引用 suinia运行能显示啊

@ASCII26 我也遇到这个问题 你试试 require('path').join(__dirname, './xx.jpg')

参与回复
登录后即可参与回复。登录