-
package
-
{
-
import flash.display.Sprite;
-
import flash.events.ProgressEvent;
-
import flash.events.Event;
-
import flash.net.URLRequest;
-
import flash.net.URLRequestMethod;
-
import flash.net.URLLoader;
-
import flash.net.URLVariables;
-
import flash.utils.ByteArray;
-
-
import mx.utils.Base64Encoder;
-
import nochump.util.zip.ZipOutput;
-
import nochump.util.zip.ZipEntry;
-
-
-
public class Main extends Sprite
-
{
-
private var url:String = "generateZip.php5";
-
-
//------------------------------
-
// コンストラクタ
-
//------------------------------
-
public function Main()
-
{
-
var fileName1:String = "helloworld1.txt";
-
var fileName2:String = "helloworld2.txt";
-
var fileData1:ByteArray = new ByteArray();
-
var fileData2:ByteArray = new ByteArray();
-
var ze1:ZipEntry = new ZipEntry(fileName1);
-
var ze2:ZipEntry = new ZipEntry(fileName2);
-
var zipOut:ZipOutput = new ZipOutput();
-
-
//-----[ファイル1]
-
fileData1.writeUTFBytes("ハローワールド1!");
-
zipOut.putNextEntry(ze1);
-
zipOut.write(fileData1);
-
zipOut.closeEntry();
-
-
//-----[ファイル2]
-
fileData2.writeUTFBytes("ハローワールド2!");
-
zipOut.putNextEntry(ze2);
-
zipOut.write(fileData2);
-
zipOut.closeEntry();
-
-
zipOut.finish();
-
-
var zipData:ByteArray = zipOut.byteArray;
-
sendZip(zipData);
-
}
-
-
//------------------------------
-
// zipデータの送信
-
//------------------------------
-
private function sendZip(byteArr:ByteArray):void
-
{
-
//-----[Base64エンコード]
-
var enc:Base64Encoder = new Base64Encoder();
-
enc.encodeBytes(byteArr);
-
-
//-----[送信変数のセット]
-
var variables:URLVariables = new URLVariables();
-
variables.data = String(enc.flush());
-
variables.type = "zip";
-
-
//-----[リクエストの発行]
-
var urlRequest:URLRequest = new URLRequest();
-
urlRequest.url = url;
-
urlRequest.method = URLRequestMethod.POST;
-
urlRequest.data = variables;
-
-
//-----[送信]
-
var urlLoader:URLLoader = new URLLoader();
-
urlLoader.addEventListener(ProgressEvent.PROGRESS, onProress);
-
urlLoader.addEventListener(Event.COMPLETE, onComplete);
-
urlLoader.load(urlRequest);
-
}
-
-
-
//------------------------------
-
// 読み込み途中
-
//------------------------------
-
private function onProress(e:ProgressEvent):void
-
{
-
trace(e.bytesLoaded + " / " + e.bytesTotal);
-
}
-
-
-
//------------------------------
-
// 読み込み完了
-
//------------------------------
-
private function onComplete(e:Event):void
-
{
-
e.target.removeEventListener(ProgressEvent.PROGRESS, onProress);
-
e.target.removeEventListener(Event.COMPLETE, onComplete);
-
-
trace("complete");
-
}
-
}
-
}