使用fs / nodejs在画布上不显示图像

时间:2015-03-12 13:48:55

标签: javascript node.js html5

我使用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

1 个答案:

答案 0 :(得分:0)

在客户端,您无法使用本地文件设置.src,您需要设置URL。您的nodejs服务器可以提供本地映像。

客户端仍在导航器沙箱中运行,无法访问本地磁盘。 NodeJS具有特定的库,可以访问本地访问,但这不是标准的Javascript。