Base64编码图像主机url或服务器文件路径

base64 encode image host url or server file path

本文关键字:服务器 文件 路径 url 编码 图像 主机 Base64      更新时间:2023-09-26

当我将图像数据编码为base64字符串时,我使用服务器文件路径获取fs.readFile()的图像数据。我有问题:这是否意味着其他人可以解码base64字符串,然后从编码数据中获得服务器路径,如下所示?

...
fs.readFile(destinationFilePath, function(error, data){
  fulfill(data.toString('base64'));
});

我不想泄漏我的服务器路径,所以我也试着像下面的代码编码主机url,我不确定这种正确的方式来使用base64?我没有得到任何错误,但也没有得到响应,我错过了什么吗?

var base64EncodeData = function(destinationFilePath) {
  return new Promise(function (fulfill, reject){
      var request = require('request').defaults({ encoding: null });
      request.get(destinationFilePath, function (error, response, body) {
        if (!error && response.statusCode == 200) {
          data = "data:" + response.headers["content-type"] + ";base64," + new Buffer(body).toString('base64');
          console.log(data);
          fulfill(data);
        }
      });
  });
};

您不会通过base64编码图像泄漏服务器路径。您正在生成的base64只包含二进制图像数据的base64表示。实际上,通过base64编码,当您在HTML页面中显示它们时,可以删除任何路径的使用,例如:

<img alt="base64 image" src="data:image/png;base64,isdRw0KGgot5AAANdSsDIA..." />

src属性包含一个标志,数据被提供data:文件mime类型image/png;编码base64,和编码的图像数据isdRw0KGgot5AAANdSsDIA...