(26)S2Flex2画像パレット FileUploadの作成
ファイルアップロードの部分は、fxugで見っけました。
ほぼそのままです。フレームワークに乗っからないので、Helperクラスで全部やってしまいました。
あまりすっきりしません。
package imagepicker.imagemanage.helper { import imagepicker.common.helper.CommonViewHelper; import imagepicker.imagemanage.event.ImageSelectAllEvent; import imagepicker.imagemanage.event.ImageSelectEvent; import flash.net.FileReference; import flash.net.URLRequest; import flash.events.IOErrorEvent; import flash.events.SecurityErrorEvent; import flash.events.Event; import mx.events.CloseEvent; import mx.controls.Alert; import com.adobe.cairngorm.control.CairngormEventDispatcher; public class ImageListHelper extends CommonViewHelper{ public function onTileList():void{ // viewstackの切り替え view.parentDocument.vsImageManage.selectedChild = view.parentDocument.vsImageDetail; var fileName : String = view.tllImageList.selectedItem.imagename; var title : String = view.tllImageList.selectedItem.title; var tags : String = view.tllImageList.selectedItem.tags; view.parentDocument.imageDetail.imgPicture.load("http://localhost:8080/imagepicker/bin/images/"+fileName); view.parentDocument.imageDetail.strImageid = view.tllImageList.selectedItem.imageid; view.parentDocument.imageDetail.strImagename = view.tllImageList.selectedItem.imagename; view.parentDocument.imageDetail.txtTitle.text = title; view.parentDocument.imageDetail.txaTags.text = view.tllImageList.selectedItem.tags; } public function doUpload() :void{ // アップロード uploadImage(); } public function selectAll() :void{ // 画像全件検索 CairngormEventDispatcher.getInstance().dispatchEvent( new ImageSelectAllEvent() ); } public function select():void{ // 画像検索 CairngormEventDispatcher.getInstance().dispatchEvent( new ImageSelectEvent(view.txtSearch.text) ); } private var file:FileReference; public override function init():void{ file = new FileReference(); file.addEventListener("select", fileSelected); file.addEventListener("complete", fileUploaded); file.addEventListener(flash.events.IOErrorEvent.IO_ERROR , ioErrorHandler); file.addEventListener(flash.events.SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); } private function ioErrorHandler(e:IOErrorEvent):void{ Alert.show(e.text); } private function securityErrorHandler(e:SecurityErrorEvent):void{ Alert.show(e.text); } private function uploadImage():void{ //file.browse([{description:"Images only, please", extension:"*.jpg;*.jpeg;*.gif;*.png"}]); file.browse(); } private function fileSelected(e:Event):void{ Alert.show("Upload " + file.name + " ("+Math.round(file.size/1024)+"KB)?", "Upload Confirmation", Alert.YES|Alert.NO, null, proceedWithUpload); } /** * アップロード。 */ private function proceedWithUpload(e:CloseEvent):void{ if (e.detail == Alert.YES){ var urlRequest:URLRequest = new URLRequest("http://localhost:8080/imagepicker/upload"); file.upload(urlRequest,"filedata",false); } } private function fileUploaded(e:Event):void{ selectAll(); } } }
次回は、Commandクラスを実装します。