我使用nodesjs和fs来创建一个呈现html页面的服务器。
我的html页面有一个脚本(javascript),用于在画布上创建画布,图像和绘制图像。现在,当我将imageObj.src作为文件系统中的本地图像(绝对路径或相对于html页面)提供时,不会加载图像。但是,如果我将imageObj.src定义为来自某个http网址,它会显示正常。不知道问题出在哪里?请帮助..参见下面的代码
服务器端代码:
var handler = function(req, res) {
fs.readFile('./page.html', function (err, data) {
if(err) throw err;
res.writeHead(200);
res.end(data);
});
}
var app = require('http').createServer(handler);
var fs = require('fs');
var port = 3250;
app.listen(port);
客户端HTML(Page.html)代码段
imageObj.onload = function() {
context.drawImage(imageObj, 69, 50,100,100);
};
imageObj.src = 'http://www.html5canvastutorials.com/demos/assets/darth-vader.jpg'; // THIS WORKS
//imageObj.src = 'D:/Pics/darth-vader.jpg'; // THIS DOESNT WORK
//imageObj.src = 'file:///D:/Pics/darth-vader.jpg'; // THIS DOESNT WORK EITHER
//imageObj.src = 'img/darth-vader.jpg'; // THIS DOESNT WORK EITHER
答案 0 :(得分:0)
在客户端,您无法使用本地文件设置.src,您需要设置URL。您的nodejs服务器可以提供本地映像。
客户端仍在导航器沙箱中运行,无法访问本地磁盘。 NodeJS具有特定的库,可以访问本地访问,但这不是标准的Javascript。