Flash & PHP 的檔案上傳

利用 FileReference 可以製作檔案上傳

AS3:


package {
    import flash.display.MovieClip;

    import flash.display.Sprite;
    import flash.errors.IOError;
    import flash.events.Event;
    import flash.events.IOErrorEvent;
    import flash.events.MouseEvent;
    import flash.net.FileReference;
    import flash.net.URLRequest;
    import flash.text.TextField;

    public class Main extends Sprite {
        private var file:FileReference = new FileReference;
        private var _Text:TextField = new TextField;

        public function Main():void {
            if (stage)
                init();
            else
                addEventListener(Event.ADDED_TO_STAGE, init);
        }

        private function init(e:Event = null):void {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            // entry point
            _Text.text = "執行資訊";
            this.addChild(_Text) ;

          
            //Box為一個 MovieClip
            var box:Box = new Box;
            this.addChild(box);
            box.y = 100;

            box.addEventListener(MouseEvent.CLICK, box_click)
        }

        private function box_click(event:MouseEvent):void {
            trace ("選擇檔案") ;
            _Text.text = "選擇檔案" ;
            file.browse();
            file.addEventListener(Event.SELECT, file_select);
            file.addEventListener(IOErrorEvent.IO_ERROR, file_ioError);
            file.addEventListener(Event.COMPLETE, file_complete) ;
            file.addEventListener(Event.OPEN , file_open) ;           
        }

        private function file_select(event:Event):void {
            var temp_url:URLRequest = new URLRequest;
            //PHP的檔案位置
            temp_url.url = './php_file9.php'
            file.upload(temp_url);
        }

        private function file_ioError(event:IOErrorEvent):void {
            _Text.text = '傳送失敗';
        }
      
        private function file_complete(event:Event):void {
            _Text.text = '傳送成功' ;
            }
          
        private function file_open(event:Event):void {
            _Text.text = '開始傳送' ;
            }
    }
}


PHP:
  if (is_uploaded_file($_FILES['Filedata']['tmp_name']))   {

    $uploadDirectory = "uploads/";
    $uploadFile = $uploadDirectory . basename($_FILES['Filedata']['name']);

    copy($_FILES['Filedata']['tmp_name'], $uploadFile);
  }
?>

沒有留言:

張貼留言