0

我想知道是否有人知道任何用于从相机获取所有图片的 Adob​​e Flash 解决方案,以便我可以自动将它们上传到我的网站(当他们访问我的网页时)。

最好这一切都在网络浏览器中,但我不确定这是否可能。如果不是,有没有好的方法可以做到这一点?

4

2 回答 2

0

您可以使用 AIR 或生成桌面/移动软件的 MDM Zinc 之类的闪存扩展器来做到这一点。但是出于非常好的安全原因,您不能使用网络上的 flash 来执行此操作。但是,您可以以正确的方式打开 FileReference 框并让用户选择要给您的文件。

于 2012-08-23T17:38:08.033 回答
0

实际上,从桌面网络摄像头做这样的事情是没有问题的。

您必须请求使用相机的权限,并且用户将看到一个对话框,指示该站点希望使用相机,但只要他们接受,您就可以从相机中抓取图像。

首先,您需要初始化并连接相机

var cam:Camera = Camera.getCamera();
var video:Video = new Video(320,240);
video.attachCamera(cam);
addChild(video);

然后你需要创建一个位图数据对象:

var bitmapData:BitmapData = new BitmapData(video.width,video.height);

然后,当您需要捕获相机时,您可以使用绘图功能:

bitmapData.draw(video);

我建议您从as3corelib中获取 jpg 编码器,以便将其编码为 jpg,然后将其发送到您的服务器。通过使用UploadPostHelper ,上传过程变得更加容易,这是一个创建多部分数据表单的好类:

ByteArray byteArray = JPGEncoder.encode( bitmapData );

var urlRequest : URLRequest = new URLRequest();
urlRequest.url = 'http://your.server.com/destination';
urlRequest.contentType = 'multipart/form-data; boundary=' + UploadPostHelper.getBoundary();
urlRequest.method = URLRequestMethod.POST;
urlRequest.data = UploadPostHelper.getPostData( 'image.jpg', byteArray );
urlRequest.requestHeaders.push( new URLRequestHeader( 'Cache-Control', 'no-cache' ) );

// create the image loader & send the image to the server;
var urlLoader : URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.load( urlRequest );

当然,您可以收听完整的事件并从您的服务器传回任何信息。希望有帮助。

于 2012-08-23T23:20:17.293 回答