-----------------------------------------------------------------------------------------
--> multi_Upload.fla
import flash.net.FileReference;
import flash.net.FileReferenceList;
var allTypes:Array = new Array();
var imageTypes:Object = new Object();
// 파일열기 탐색창에서 파일형식에 보여지는 문자열 입니다.
imageTypes.description = "Images (*.jpg, *.jpeg, *.gif, *.png)";
// 업로드 할 수 있는 파일의 형식 입니다.
imageTypes.extension = "*.jpg; *.jpeg; *.gif; *.png";
allTypes.push(imageTypes);
// 업로드 할려고 하는 파일의 이름을 기억하는 새로운 배열을 선언 합니다.
var fileList:Array = new Array();
var fileRef:FileReferenceList = new FileReferenceList();
//
var upLis:Object = new Object();
upLis.onSelect = function(fileRefList:FileReferenceList):Void {
fileList = fileRefList.fileList;
var item:FileReference;
var filename:String = "";
var len = fileList.length;
// 업로드 되는 파일 이름을 하나의 문자열을 만듭니다.
for (var i:Number = 0; i<len; i++) {
item = fileList[i];
filename += item.name+", ";
}
var filenameStringLength:Number = filename.length;
// 가장 마지막의 ", " 문자열을 없애기 위해 문자열의 마지막 2 개를 제외한 문자을 보여주게 합니다.
filename_txt.text = filename.substr(0, filenameStringLength-2);
//
fileUpload(fileList[itemUploadIndex]);
};
upLis.onOpen = function(file:FileReference):Void {
// 프리 업로딩바를 보여줍니다.
attachLodaingBar();
};
upLis.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void {
// 파일 업로드가 진행되는 상태를 보여 줍니다.
showLoaded(bytesLoaded, bytesTotal);
};
upLis.onComplete = function(file:FileReference):Void {
itemUploadIndex++;
var totalLength = fileList.length;
// 업로드 된 파일의 갯수와 전체 업로드 할 파일의 갯수가 같다면 프리 업로딩바를 제거 해 줍니다.
if (totalLength == itemUploadIndex) {
removeLoadingBar();
} else {
// 그렇지 않다면 다음 파일을 업로드 합니다.
fileUpload(fileList[itemUploadIndex]);
}
};
//
fileRef.addListener(upLis);
//
function fileUpload(item:FileReference):Void {
item.addListener(upLis);
item.upload("getFile.php");
}
//
function attachLodaingBar():Void {
var preloadingBar_mc = this.attachMovie("loadingBar", "preLoading_mc", 1);
// 투명 버튼의 핸드커서를 안 보이게 해 줍니다.
preloadingBar_mc.trans_btn.useHandCursor = false;
// 프리 업로딩바의 최초 스케일이 처음부터 보여주기 위해 1% 로 설정 합니다.
preloadingBar_mc.bar_mc._xscale = 1;
preLoading_mc.str_txt.text = itemUploadIndex+" / "+fileList.length;
}
function showLoaded(l:Number, t:Number):Void {
// 로딩 되는 것을 백분율로 보여주기 위한 공식 입니다.
var percent = Math.floor(l/t*100);
preLoading_mc.bar_mc._xscale = percent;
}
function removeLoadingBar():Void {
preLoading_mc.removeMovieClip();
}
//
upload_btn.onRelease = function() {
// 업로드 되는 파일의 인덱스 입니다.
itemUploadIndex = 0;
fileRef.browse(allTypes);
};
-----------------------------------------------------------------------------------------
--> multi_Upload.php
<?php
$uploadfile = "./uploadFile/" . basename($HTTP_POST_FILES['Filedata']['name']);
$uploadfile = iconv("UTF-8","euc-kr", $uploadfile);
@move_uploaded_file($HTTP_POST_FILES['Filedata']['tmp_name'], $uploadfile);
?>
-----------------------------------------------------------------------------------------
--> multi_Upload.html
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<title>multi_Upload</title>
<script language="javascript">AC_FL_RunContent = 0;</script>
<script src="AC_RunActiveContent.js" language="javascript"></script>
</head>
<body bgcolor="#ffcc00">
<!--url's used in the movie-->
<!--text used in the movie-->
<!--
<p align="left"></p>
-->
<!-- saved from url=(0013)about:internet -->
<script language="javascript">
if (AC_FL_RunContent == 0) {
alert("This page requires AC_RunActiveContent.js. In Flash, run \"Apply Active Content Update\" in the Commands menu to copy AC_RunActiveContent.js to the HTML output folder.");
} else {
AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
'width', '400',
'height', '400',
'src', 'multi_Upload',
'quality', 'high',
'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
'align', 'middle',
'play', 'true',
'loop', 'true',
'scale', 'showall',
'wmode', 'window',
'devicefont', 'false',
'id', 'multi_Upload',
'bgcolor', '#333333',
'name', 'multi_Upload',
'menu', 'true',
'allowScriptAccess','sameDomain',
'movie', 'multi_Upload',
'salign', ''
); //end AC code
}
</script>
<noscript>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="400" height="400" id="multi_Upload" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="multi_Upload.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#333333" /> <embed src="multi_Upload.swf" quality="high" bgcolor="#333333" width="400" height="400" name="multi_Upload" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</noscript>
</body>
</html>
-----------------------------------------------------------------------------------------
소스 출처: www.adobe.com
클래스 참고: http://livedocs.macromedia.com/flex/2/langref/flash/net/FileReference.html
'ActionScript > AS3.0' 카테고리의 다른 글
Focus selected shape (0) | 2008.03.24 |
---|---|
모든 마우스 리스너 삭제 (0) | 2008.03.24 |
[as3.0] CAM화면 FLV로 서버에 저장하기 (1) | 2008.03.24 |
[AS3] SWC 로 폰트 가볍게 Embed 하기 (1) | 2008.03.18 |
PaperVision3D-튜트리얼 (0) | 2008.03.17 |