【问题标题】:Security problem while trying to load image from server disk in Actionscript 3.0尝试在 Actionscript 3.0 中从服务器磁盘加载图像时出现安全问题
【发布时间】:2010-11-30 03:20:01
【问题描述】:

我在尝试加载图像文件时遇到错误#2148(这是安全性)。

1.如果我在local中加载swf文件,图像会被正确检索和显示。

2.但是如果我将 swf 文件发布到我的 web 项目中并在 localhost 中运行它,它会给我 #2148 安全错误

3.如果我在loadImage()函数中使用http://xx.xx/ticketstub.png,它在12都有效; 现在的问题是当我使用 C:/jbdevstudio/uploads/ticketdesign/ticketstub.png 时,它不能在 Web 服务器中工作。

知道我该如何解决这个问题,否则 Flash 根本不支持这个。我已经用谷歌搜索了这个问题几天,并尝试了我找到的任何解决方案,但仍然没有运气。

谢谢!

ActionScript 代码:

//http://xx.xx/ticketstub.png works in both 1 and 2
loadImage("C:/jbdevstudio/uploads/ticketdesign/ticketstub.png");


function loadImage(url:String):void {
try{
 // Set properties on my Loader object
 imageLoader = new Loader();
 imageLoader.load(new URLRequest(url));
 imageLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imageLoading);
 imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
}catch(error:Error){
    ExternalInterface.call("er", error.toString()); 
}
}


function imageLoaded(e:Event):void {
try{
 // Load Image
 imageHolder.addChild(imageLoader);
 imageHolder.width = imageHolder.width / 3.5;
 imageHolder.height = imageHolder.height / 3.5;
}catch(error:Error){        
    ExternalInterface.call("er", error.toString()); 
}

【问题讨论】:

    标签: flash actionscript-3 security actionscript localhost


    【解决方案1】:

    您不能像这样在 Flash 中从本地文件系统加载图像。

    可以从 Web URL 加载图像。如果它们来自与 SWF 不同的域,则只能显示它们,而不能处理它们。但是,通过额外的安全支持(proxy 或 crossdomain.xml),您可以从另一个域加载图像,并根据需要处理它们。

    第三个选项是通过FileReference类上传用户提供的图片,但是用户选择文件,SWF不能直接选择。这些文件可以按照您喜欢的任何方式进行处理。

    【讨论】:

    • 这个基本正确,只是可以跨域加载图片和视频。如果没有 crossdomain.xml 策略文件,您将无法读取加载的字节。
    • 是的,很好……您可以按原样显示图像/视频,但除此之外无法处理它。我已更新我的答案以修复该错误。
    • @James,我忘了,你能在没有跨域的情况下对图像应用过滤器吗?
    • 嗨,这是否意味着“c:\path\image.png”不能使用?而“xx.xx/image.png”是唯一的方法吗?因为我的图像文件总是在运行服务器的同一台机器上。我很困惑 :D 再次感谢!
    • @Wilson60,在浏览器中运行的 Flex 应用程序与所有其他浏览器应用程序一样工作。他们无法访问本地资源。如果您需要访问本地资源,请创建一个 AIR 应用程序(使用 Flex)。
    猜你喜欢
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    • 2012-07-12
    • 1970-01-01
    • 2011-01-19
    相关资源
    最近更新 更多