# 방법
1.클라이언트 단에서 처리하고자 하는 데이터를 서버 측 페이지에서(예제에서 upload_process_for_httppostfiles.php 파일) Write합니다.
echo ($last_saved_filename . "\r\n");
2. 업로드 완료 시점에서 FileUploadMonitor의 OnTransferComplete()이벤트를 이용하여 이벤트 발생 시점에 ResponseData프로퍼티를 이용하여 서버측에서 write한 데이터를 받아올 수 있습니다.
<script language="javascript" for="FileUploadMonitor" event="OnTransferComplete()">
document.all["FileUploadMonitor"].ResponseData;
</script>
3. 2번에서 받아온 데이터를 원하는 방법으로 활용합니다.
# 예제
1. FileUploadMonitor.htm
<script language="javascript" for="FileUploadMonitor" event="OnTransferComplete()">
document.all["FileUploadMonitor"].ResponseData;
</script>
2. upload_process_for_httppostfiles.php
<?
// 파일이 저장될 위치
$upload_dir = "./";
// 업로드 된 파일의 개수만큼 파일을 저장
for ($i=0; $i < sizeof($HTTP_POST_FILES["DEXTUploadX"]["tmp_name"]); $i++)
{
// HTTP POST를 통해 업로드 된 파일일 경우만 저장
if (is_uploaded_file($HTTP_POST_FILES["DEXTUploadX"]["tmp_name"][$i]))
{
// 실제 파일명
$file_name = $HTTP_POST_FILES["DEXTUploadX"]["name"][$i];
// 임시 파일명
$file_tmp_name = $HTTP_POST_FILES["DEXTUploadX"]["tmp_name"][$i];
// 마지막에 저장될 파일명
$last_saved_filename =$file_name;
// 중복파일 처리 (확장자가 없는 파일, 허용되지 않은 확장자에 대한 예외처리 필요) $index = 1;
$filename_without_ext = substr($file_name, 0, strrpos($file_name, "."));
$filename_ext = substr(strrchr($file_name, "."), 1);
while(true)
{
if(file_exists($upload_dir.$last_saved_filename))
{
$last_saved_filename = $filename_without_ext."[".$index."].".$filename_ext;
$index++;
}
else
{
break;
}
}
// 클라이언트에 출력할 문자열
echo ($last_saved_filename . "\r\n");
// 업로드 된 파일을 지정된 경로로 이동
if (move_uploaded_file($file_tmp_name, $upload_dir . $last_saved_filename))
{
// 원하는 파일의 모드로 변경
@chmod($upload_dir . $last_saved_filename, 0775); // 8진수 모드 값 사용 명시
}
}
}
?>
[매뉴얼]
-DEXTUploadX->DEXTUploadX 객체 레퍼런스->FileUploadMonitor->프로퍼티->ResponseData
-DEXTUploadX->DEXTUploadX 객체 레퍼런스->FileUploadMonitor->이벤트->OnTransferComplete()
|