상세 컨텐츠

본문 제목

jQuery FileUpload Plugin 파일업로드시 업로드 위치 동적변경하기

IT공부방/jQuery, ajax, java

by 동해둘리 2016. 8. 30. 16:47

본문

반응형

jQuery FileUpload Plugin 파일업로드시 업로드 위치 동적변경하기


https://github.com/blueimp/jQuery-File-Upload  에서 구할 수 있는 

jQuery blueimp Fileupload Plugin 을 사용하면,  파일업로드를 아주 쉽게 구현할 수 있습니다.




기본적으로 설치하여 사용하는 방법은 얼마전에 올린 아래 포스팅을 참고하시기 바랍니다.

http://doolyit.tistory.com/38



오늘 포스팅의 주제는, 파일업로드를 할때... 동적으로 파일업로드되는 위치를 변경하는 방법입니다.

예를 들자면, 로그인한 사용자에 따라서 별도로 업로드 폴더를 생성해야 하는 경우 사용할 수 있겠죠....



jQuery File Upload Plugin 을 사용하는 경우, Upload Handler 를 이용하게 되는데요,

PHP 환경인 경우에는 UploadHandler.php 를 열어보면, 다음과 같은 부분이 있는데요


'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')) . '/files/',


만약 UploadHandler.php 의 위치가 server/ 폴더에 있다면, 업로드 되는 파일은 기본적으로 server/files/ 아래로

업로드 되게됩니다.


이를 변경하려면, 아래와 같이  위 부분을 직접 수정해도 되지만, 

'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')) . '/my_folder/',



사용자 각각에 따라 별도의 업로드 폴더를 생성하기 위해서는 아래와 같이 SESSION 을 이용하면 됩니다.

Upload 엘리먼트가 있는 Form 페이지에서 PHP 의 Session 을 생성시킨 후에


session_start();  // Set the path       

$_SESSION['upload_dir'] = "My_Folder";  



UploadHandler.php 에서는 아래와 같이 Session 값을 가져오면 됩니다.


'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/files/' . $_SESSION['upload_dir'] . '/',


만약, 로그인 정보를 사용하지 않고 사용자가 동적으로 선택한 특정 행위(클릭이나 Select)가 일어났을때
그 값에의해 업로드폴더를 생성해야 하는 경우라면, ajax 를 이용하여 session 을 세팅해 주어도 됩니다.

var sFolderVal =  document.getElementById('#SelectFolder').value();                            
                                                                                                                   
$.ajax({                                                                                                          
url : './set_session.php?upload_dir=' + sFolderVal,  
dataType: 'html'                   
}).done(function(data) {                  
})

set_session.php 내용 

<?                                                  
session_start();  // Set the path        
$_SESSION['upload_dir'] = $gcode;   
?>                                                  







반응형

관련글 더보기

댓글 영역