ajax가 웹에 많은 발전을 기여 한게 사실이지만 파일처리에 있어서는 항상 걸림돌이였다.
우선 먼저 짚고 넘어가야할게 ajax에서는 XMLHttpRequest프로토콜을 사용하는데 알다시피 파일업로드는 되지 않는다.
그렇다면 제목에서 말하는 ajax 파일 업로드가 과연 맞는것인가에 대한 의문이 드는게 사실인데..
혹자는  XMLHttpRequest을 사용하지 않는다면 결국 자바스크립트일뿐이라고도 한다.
(기존에 비슷한 기능을 iframe으로 구현을 많이 했으니 틀린말은 아니군요..)
하지만 결국 비동기식으로 보이게끔(-_-;) 구현을 해주니 ajax파일업로드라 하겟다..;;;..

파일업로드를 ajax방식으로 처리해주는 스크립트 라이브러리는 여러개가 있다.
jQuery가 유행하다보니 유난히 jQuery플러그인식으로 많이들 나오는거 또한 사실이다..
그중에서도 이번에 사용한 파일업로드 스크립트 라이브러리는  "uploadify" 로서
내부적으로 플래쉬 파일 업로드라이브러리인
"SWFUpload"를 내부적으로 포함해서 결과적으로 플래쉬파일을 사용해서 업로드를 처리하고있다.

우선 다운로드는 여기 == >   ["uploadify" 다운]
필자는 현재 최신버젼이지만 베타판인 -_-. .3.0.0 버젼으로 작업을 해보았다.
uploadify-v3.0.0.zip 파일을 풀어보면 샘플을 php기준으로 작성되어있는데 필자는 jsp 기반으로 작성해보았다.
우선 필요한 js 와 css등은 별도로 놔두고 jsp을 작성해야한다.

우선 알아둬야할게 uploadify의 경우 서버에 파일을 올릴때 올리고나면 파일명이 중복될것에 대해서 미리 체크해볼수 있게
옵션을 설정을 해주는데 필자의 경우 애초에 오리지널파일명과 변경될 파일명을 같이 등록하는 식으로 처리했다.
(파일을 저장할때 변경될 파일명을 지정해주고 그 파일명으로 rename후 업로드 된다.)

1. uploadify의 관련 js와 css, swf파일들을 작업 경로에 복사하자.
uploadify의 경우 swfobject와 jQuery 라이브러리를 참조하므로 없다면  아래에서 다운받도록하자
   [swfobject], [jQuery]

2. 파일폼 페이지 작성
<!DOCTYPE HTML>
<html>
<head> 
<link href="uploadify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="jquery.1.6.1.min.js"></script>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript" src="jquery.uploadify.min.js"></script>
<script type="text/javascript">
	$(document).ready(function() {
		$('#file_upload').uploadify({
			'swf'		  	: 'uploadify.swf',	//파일업로드 이벤트를 가로챌 플래쉬.
			'uploader'    	: 'fileUpload.jsp',	//비동기 파일 업로드 처리 페이지 url.
			'cancelImage' 	: 'uploadify-cancel.png',	// 파일업로드시 취소 버튼 이미지.
			'checkExisting' : '',			//기존 파일이 존재하는지 체크할 페이지 url. 
			'postData' 		: {'fileName' : 'attach_'+new Date().getTime() },		//uploader 페이지 호출시 파라미터 추가. 
			'folder'    	: '/upload',
			'buttonText' 	: "파 일 첨 부",
			'auto'      	: true,							//자동 파일 업로드 여부
			'onUploadComplete'  : function(file, queue) {	//업로드 완료후 처리 callback 함수
				for(var name in file) {
					//업로드후 파일정보
					alert(name + "=" + file[name]);
				}
			}
		  });
	});
</script>
<body>
	<input id="file_upload" name="file_upload" type="file" /><br>
</body> 
</html>
uploadify 설정시 추가 옵션에 대한 내용은 해당 [API]문서에서 확인해볼수 있다.
위의 내용을 추가적으로 설명을 하자면 실제 uploader옵션에 "fileUpload.jsp"가 실제 파일 업로드 처리 페이지이다
해당 페이지에서는 어떤 리턴값도 필요가 없으니 순수하게 파일업로드 기능만을 구현하면되겟다.
중복 파일명 문제를 피하기 위해 파일 업로드시 미리 중복 파일명 검색을 하고자 한다면 "checkExisting" 옵션에 해당 체크할수 있는 페이지 url을 추가하면된다.(물론 파일명 중복체크 로직이 필요하며 return 값은 true || false 이다)

필자의 경우 postData 옵션을 통해 저장될 파일명을 미리 지정해주어 DB 저장시 용이하게 하였다.
위와 같은 옵션의 경우 실제 파일업로드 호출 url은 "fileUpload.jsp?fileName=attach_2012232312" 식이 될것이다.

"onUploadComplete" 옵션의 경우 파일 업로드 완료후 실행되는 callback함수로 서버에 올라간 파일정보를 얻을수 있다.
주로 파일명, 파일사이즈, 확장자, 작성일등의 정보를 얻을수 있으니 최종 DB저장시 참고해서 저장하면되겟다.

사족이지만 uploadify의 경우 swf파일을 통해 이벤트를 처리하므로 당연하게도 flash 플로그인을 설치한 사용자만 사용이 가능하다
이는 사용자 UI를 불편하게 만들수도 있기에 위 방법이 절대 베스트는 아니다.(플래쉬 플러그인 미설치 유저가 의외로 많다.)
차후 시간이 된다면 꼭 한번 직접 구현해보고 싶은 기능이니 언제고(?) 만들어봐야겠다.ㅡㅡ;;;;..
현재  톰캣서버의 버젼이 7.0이 나왔지만 부득이하게 6.0버젼의 톰캣을 사용할일이 생겼다.
더군다나 새로 인스톨이 아닌 톰캣폴더자체를 복사해와 로컬에 셋팅을 하게되었다..음..-__-..

톰캣은 뭐 인스톨단계가 반드시 필요한건 아니기에 복사만으로 충분히 사용할수 있지만 한가지 아쉬운게
시스템트레이에 아이콘이 추가되지 않아 항상 시작 혹은 재시작 할경우 톰캣콘설창을 찾거나 폴더까지 가서 모니터링 실행명령어를 통해서만 일련의 작업을 진행하여 지속적인 불편함을 야기 했었다..

결국 참지 못하고 방법을 찾앗으니 아래와 같다..
참고로 필자의 톰캣경로는  D:\Tomcat 6.0 이다.

1.  단축아이콘 생성.
     - D:\Tomcat 6.0\bin\tomcat6w.exe 파일의 단축아이콘을 생성한다. (바탕화면이나 빠른실행 란에 생성)

2. 단축아이콘의 속성란 대상(T) 란에 톰캣실행명령어와 "//MS//Tomcat6" 추가  

 

//MS// 는  트레이아이콘에 추가하기 위한 옵션 명령어 - 상세는 여기로
Tomcat6 은 서비스에 추가된 서비스명이 되겠다.


여기까지 됐다면 이제 단축아이콘을 실행하면 하단 트레이아이콘에 톰캣 모니터링 아이콘이 실행된걸 확인할수있다.



 

모방범 3
국내도서>소설
저자 : 미야베 미유키 / 양억관역
출판 : 문학동네 2006.08.14
상세보기


오랜만에 독후감쓰는거같군..
이번에 읽은 모방범. 머랄까 표지에서의 으스스함이 좋아 구매를 햇더랫다..
전부터 서점에 가면 항상 추리소설코너에서 떡하니 자리잡고 있어 언제고 봐야지 했는데 이번에야 읽을수 있엇네..

도쿄의 한 공원에서 여성의 것으로 추정되는 손이 발견되면서 소설은 시작한다.
결국 사건은 여자들만을 노린 연쇄살인사건으로 확대되가고 이에 관련된 3명의 얘기를 위주로 이끌어가게된다.
조그마한 동네 중학교동창생들인 3명은 메밀국수집 아들인 가즈아키, 약국집아들인 히로미, 그리고 항상 웃음을
달고 다녀서 별명이 '피스'인 아미가와.
범인은 히로미와 아미가와.. 착한심성의 가즈아키는 친구인 히로미를 구원하기 위해 애쓴다.

기존 반전을 위한 추리소설과는 다르게 작가는 극 내용 초반부터 범인을 공개하고 시작한다.ㅡㅡa..
그래서 항상 반전을 원했던 나로썬 실망스럽기 그지없었다!! ...아오! 반전을 원해!!!..쩝..

암튼 히로미와 아미가와는 공통적으로 어릴적에 부모로부터 심한 마음의 상처를 얻게되며 나이가 들어서도 삐뚤어진 심성은 그대로 였다.
소설은 일련의 연쇄사건들이 발생하게 되고 자연스레 피해자 가족들의 얘기로 흘러가게 된다.
잔인하게도 히로미와 아미가와는 이 피해자가족들을 농락하고 또한 그것들 즐기게 되면서 사태는 더욱 커져만 간다.
가즈아키는 이런 히로미의 상황을 알고서 도움을 줄려고 하지만 오히려 히로미와 함께 죽게되어 버리고
이에 경찰과 여론은 히로미와 가즈아키를 범인으로 단정지어버리면서 사건은 마무리 되는듯보였다..
하지만 가즈아키의 확실한 증거가 없어 수사는 종결되지 못한채 시간은 흘러가는데..

이 소설은 작가가 오년에 걸쳐 잡지에 연재한거랜다. 원고지 6천매정도의 분량이라는데 대단하시군..;;..
사건의 진범인 피스.. 아미가와는 마치 사이코패스와도 같다...살인이라는것에 대해 어떤 죄책감을 가지지 않고 오히려 이 거대한 연쇄살인극을 한편의 희극으로 판단하고 사건을 일으킨다..

전체적으로 우울한 분위기..미스테리한 표지와 비슷했다...음. 반전이 없다는걸 알고봤더니 읽는 속도가 나지 않고 책은 또 왜이렇게 두꺼운건지.ㅡㅡa....
다음에는 근사한 반전소설을 골라야지..


'Movie, Book' 카테고리의 다른 글

[책] 코브라  (0) 2011.09.15
[책] 여왕벌  (0) 2011.08.05
[책] 모방범  (0) 2011.07.19
[책] Ext JS 우베 애플리케이션 개발  (0) 2011.07.16
[책] 경관의 피  (1) 2011.03.04
[책] 클라이머즈 하이  (0) 2011.02.10

+ Recent posts