Flex 4 で画像をアップロードしようとしていますが、まだあまり成功していません。助けてくれる人?
私のコード:
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);
}
}
編集:
これは本当に単純な todo でした:
private function fileComplete(e:Event):void {
if(fileref.data != null) {
image1.data = fileref.data;
}
}
画像を保存する 2 番目のボタンを作成しましたが、正常に動作しますが、ダイアログが表示されます。本当に必要ですか? どうすればそれを防ぎ、サーバーディスクに明示的に配置できますか? 別の方法 (バックエンドとして .NET を使用) は、bytearray-image を取得して .net Web サービス経由で送信し、C# コードで image を保存します。多分それはより良いオプションです。Actionscript 3 でできることにはいくつかの制限があるかもしれません。
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 アプローチを採用して Image (= bytearray) を SqlServer に保存したときにうまく機能しました。