gpt4 book ai didi

javascript - canvas.toDataURL() 抛出安全异常,尽管图像是本地的

转载 作者:行者123 更新时间:2023-11-29 16:21:41 25 4
gpt4 key购买 nike

这是我处理将图像添加到 Canvas 的代码。这是在创建一个 Uploadify 实例,它将 SVG 文件上传到本地 [root]/uploads 文件夹。然后将该图像广告到三个不同尺寸的 Canvas 上。任何时候都不会使用 http://地址引用图像。所有对图像路径的引用都是 本地 相对的。

    var folder = '/uploads';
var fullpath = folder + '/' + $('input#canonical').val() + ".svg";
$('#file_upload').uploadify({
'uploader': '/uploadify/uploadify.swf',
'script': '/uploadify/uploadify.php',
'cancelImg': '/uploadify/cancel.png',
'folder': folder,
'fileExt': '*.svg',
'fileDesc': 'SVG files',
'scriptData': {'rename': $('input#canonical').val() + ".svg"},
'onAllComplete': function(){
$('#upload-wrap').hide();

var img = new Image();
img.onload = function(){

var ar = img.width / img.height;
var swidth = ( ar >= 1 ) ? small : small * ar;
var mwidth = ( ar >= 1 ) ? medium : medium * ar;
var lwidth = ( ar >= 1 ) ? large : large * ar;

var sheight = ( ar <= 1 ) ? small : small / ar;
var mheight = ( ar <= 1 ) ? medium : medium / ar;
var lheight = ( ar <= 1 ) ? large : large / ar;

var sc = sCanvas.getContext('2d');
var mc = mCanvas.getContext('2d');
var lc = lCanvas.getContext('2d');

scObj.css({width:swidth, height: sheight});
mcObj.css({width:mwidth, height: mheight});
lcObj.css({width:lwidth, height: lheight});

sc.drawImage(img,0,0,swidth,sheight);
mc.drawImage(img,0,0,mwidth,mheight);
lc.drawImage(img,0,0,lwidth,lheight);
};
img.src = fullpath;
}
});

当我尝试调用 canvas.toDataUrl() 时,我在控制台中遇到了 Uncaught Error: SECURITY_ERR: DOM Exception 18 问题。有没有办法来解决这个问题?如果您需要更多信息,请告诉我。

最佳答案

At no point is the image referenced using an http:// address. All references to the image path are local.

这就是问题所在。您不能以这种方式使用本地文件。这是关于 understanding the Canvas image security rules. 的一些信息

如果允许 Canvas 将本地文件绘制到自身,那么它可能会绘制本地驱动器上的文件(您私有(private)),获取其图像数据,并将该文件上传到服务器,从而有效地窃取图像。我们不能那样做,所以“本地文件破坏了 origin-clean”规则就位。

您实际上可以在 Chrome 中关闭该规则:

C:\Users\theUser\AppData\Local\Google\Chrome\Application\chrome.exe --allow-file-access-from-files

但这应该只是为了调试。

关于javascript - canvas.toDataURL() 抛出安全异常,尽管图像是本地的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10187306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com