Actionscript 3 如何使用Filereference在Flex4中上载图像?
我正在尝试在Flex4中上传图像,但还没有成功。谁能帮忙 我的代码:Actionscript 3 如何使用Filereference在Flex4中上载图像?,actionscript-3,flex4,filereference,Actionscript 3,Flex4,Filereference,我正在尝试在Flex4中上传图像,但还没有成功。谁能帮忙 我的代码: private var fileref:FileReference; protected function application1_creationCompleteHandler(event:FlexEvent):void { fileref = new FileReference();
private var fileref:FileReference;
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
fileref = new FileReference();
}
protected function button1_clickHandler(event:MouseEvent):void
{
fileref.browse();
fileref.addEventListener(Event.SELECT, fileSelect);
}
private function fileSelect(e:Event):void {
try {
var data:ByteArray = e.target as ByteArray;
fileref.save(data, "pic1.jpg");
}
catch(err:Error) {
Alert.show("Error: " + err.message);
}
}
编辑:
这真的很简单:
private function fileComplete(e:Event):void {
if(fileref.data != null) {
image1.data = fileref.data;
}
}
我做了第二个按钮,应该保存图像,它工作正常,但我得到了对话框
起来,真的有必要吗?如何防止它并将其显式地放在服务器光盘上?
另一种方法(我使用.NET作为后端)获取bytearray映像并通过.NET Web服务发送,然后让C#代码保存映像。也许这是一个更好的选择。ActionScript3可能对它的功能有一些限制,或者我真的没有得到通知吗
protected function button2_clickHandler(event:MouseEvent):void
{
fileref = new FileReference();
var data:ByteArray = image1.data as ByteArray;
if(data != null) {
fileref.save(data);
}
else {
Alert.show("Picture is null!");
}
}
当我采用Webservice方法并将映像(=bytearray)存储在SqlServer中时,这种方法工作得很好 要捕获图像并上传,您可能需要查看
imagesnashot
。
它将图像编码为JPEG或PNG格式。保存bytearray将为您提供更大的灵活性,并将存储在服务器中的数据与客户端的实现分离。您能澄清这个问题吗?您想让flex客户端将文件上载到服务器,还是想将客户端生成的映像保存到本地磁盘?我想将上载的映像保存到服务器的磁盘上。