日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

[ActionScript 3.0] AS向php发送二进制数据方法之——在URLRequest中构造HTTP协议发送数据...

發(fā)布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [ActionScript 3.0] AS向php发送二进制数据方法之——在URLRequest中构造HTTP协议发送数据... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

主類?HTTPSendPHP.as

 1 package 
 2 {
 3     import com.JPEGEncoder.JPGEncoder;
 4     import com.fylib.httpRequest.HttpRequestBuilder;
 5     import com.fylib.httpRequest.HttpRequestBuilderConsts;
 6     import flash.display.Bitmap;
 7     import flash.display.BitmapData;
 8     import flash.display.Loader;
 9     import flash.display.Sprite;
10     import flash.events.Event;
11     import flash.events.HTTPStatusEvent;
12     import flash.net.URLLoader;
13     import flash.net.URLRequest;
14     import flash.utils.ByteArray;
15 
16     /**
17       * ...
18       * @author Frost.Yen
19       */
20     public class HTTPSendPHP extends Sprite
21     {
22         private var bmp:Bitmap;
23         public function HTTPSendPHP()
24         {
25             var ldr:Loader = new Loader  ;
26             ldr.load(new URLRequest("image.jpg"));
27             //加載的圖片;
28             ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
29         }
30 
31         private function onComplete(e:Event):void
32         {
33             var bmpd:BitmapData = e.target.content as Bitmap.bitmapData;
34             var jpgEncoder:JPGEncoder = new JPGEncoder(80);//圖片質(zhì)量
35             var jpgStream:ByteArray = jpgEncoder.encode(bmpd);//將圖片數(shù)據(jù)轉(zhuǎn)換成ByteArray存儲
36 
37             var HttpR:HttpRequestBuilder = new HttpRequestBuilder("php端地址");//php端地址
38             HttpR.writeImage("圖片變量","圖片名稱",HttpRequestBuilderConsts.JPG,jpgStream);
39             //圖片變量如:"data[Image][name]";
40             HttpR.writeHttpEnd();
41             HttpR.writeSeparator();
42 
43             var loader:URLLoader = new URLLoader  ;
44             var request:URLRequest = HttpR.getURLrequest();
45             loader.load(request);
46             loader.addEventListener(HTTPStatusEvent.HTTP_STATUS,httpStatusHandler);
47             loader.addEventListener(Event.COMPLETE,onSendComplete);
48         }
49 
50         private function onSendComplete(e:Event):void
51         {
52             trace("complete");
53         }
54 
55         private function httpStatusHandler(e:HTTPStatusEvent):void
56         {
57             trace(("status is " + e.status));
58         }
59     }
60 
61 }

其他類

  1 package com.fylib.httpRequest
  2 {
  3     import flash.net.URLRequest;
  4     import flash.net.URLRequestMethod;
  5     import flash.net.URLVariables;
  6     import flash.utils.ByteArray;
  7 
  8     /**
  9       * ...
 10       * @author 
 11       */
 12     public class HttpRequestBuilder
 13     {
 14         /**
 15           * 構(gòu)造的URLRequest
 16           */
 17         private var _request:URLRequest;
 18         /**
 19           * 構(gòu)造的二進(jìn)制ByteArray
 20           */
 21         private var _byteArray:ByteArray;
 22         /**
 23           * Http協(xié)議分割符
 24           */
 25         private var _separator:String;
 26         /**
 27           * 標(biāo)志位  是否填寫HTTP文件尾
 28           */
 29         private var PROTOCAL_END_SET:Boolean = false;
 30 
 31         public function HttpRequestBuilder($url:String,$separator:String="7d86d710144a")
 32         {
 33             //初始化
 34             this._separator = $separator;
 35             this._request = new URLRequest($url);
 36             this._request.method = URLRequestMethod.POST;
 37             this._request.contentType = "multipart/form-data; boundary=---------------------------" + this._separator;
 38             this._byteArray = new ByteArray  ;
 39         }
 40 
 41         /*
 42          * 寫入變量
 43          * @param $name 寫入的變量名
 44          * @param $value 寫入的變量值
 45          */
 46         public function writeVariable($name:String,$value:String):void
 47         {
 48             writeSeparator();
 49             _byteArray.writeUTFBytes(((("Content-Disposition: form-data; name=\"" + $name) + "\"\r\n\r\n") + $value));
 50         }
 51 
 52         /*
 53          * 寫入圖片
 54          * @param $name 變量名
 55          * @param $filename 圖片文件名
 56          * @param $type 圖片類型,在HttpRequestBuilderConsts下定義
 57          * @param $content 圖片二進(jìn)制數(shù)據(jù)
 58          */
 59         public function writeImage($name:String,$filename:String,$type:String,$content:ByteArray):void
 60         {
 61             writeSeparator();
 62             _byteArray.writeUTFBytes((((((("Content-Disposition: form-data; name=\"" + $name) + "\"; filename=\"") + $filename) + "\"\r\nContent-Type: ") + $type) + "\r\n\r\n"));
 63             _byteArray.writeBytes($content);
 64         }
 65 
 66         /*
 67          * 構(gòu)造HTTP分割線
 68          */
 69         public function writeSeparator():void
 70         {
 71             _byteArray.writeUTFBytes((("\r\n-----------------------------" + separator) + "\r\n"));
 72         }
 73 
 74         /*
 75          * 構(gòu)造HTTP結(jié)尾,只能調(diào)用一次,二次調(diào)用會拋出錯誤
 76          */
 77         public function writeHttpEnd():void
 78         {
 79             if (! PROTOCAL_END_SET)
 80             {
 81                 _byteArray.writeUTFBytes((("\r\n-----------------------------" + separator) + "--"));
 82                 PROTOCAL_END_SET = true;
 83             }
 84             else
 85             {
 86                 throw new Error("Write the Http End More Than Once");
 87             }
 88         }
 89 
 90         /*
 91          * 獲取構(gòu)造好的URLRequest
 92          */
 93         public function getURLrequest():URLRequest
 94         {
 95             return this.request;
 96         }
 97 
 98         //get set
 99         public function get separator():String
100         {
101             return _separator;
102         }
103         /*public function set separator(value:String):void
104           {
105            //TODO 替換之前寫入的內(nèi)容
106            _separator = value;
107           }*/
108 
109         /*
110          * 獲取前會檢查是否寫入HTTP結(jié)尾,未調(diào)用的話會報錯
111          */
112         public function get request():URLRequest
113         {
114             if (! PROTOCAL_END_SET)
115             {
116                 throw new Error("Havn't Write the Http End Yet");
117             }//??還是應(yīng)該自動構(gòu)造
118             _request.data = _byteArray;
119             return _request;
120         }
121     }
122 
123 }
 1 package com.fylib.httpRequest
 2 {
 3     /**
 4       * ...
 5       * @author 
 6       */
 7     public class HttpRequestBuilderConsts
 8     {
 9         public static const JPG:String = "image/jpeg";
10         public static const PNG:String = "image/x-png";
11 
12         public function HttpRequestBuilderConsts()
13         {
14 
15         }
16 
17     }
18 
19 }

?

轉(zhuǎn)載于:https://www.cnblogs.com/frost-yen/p/4544108.html

總結(jié)

以上是生活随笔為你收集整理的[ActionScript 3.0] AS向php发送二进制数据方法之——在URLRequest中构造HTTP协议发送数据...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。