본문 바로가기

jQuery/Uplodify

[Uplodify] Uplodify 플러그인을 사용한 파일 업로드

반응형




■ Uplodify 플러그인을 사용한 파일 업로드




 -. Uplodify 플러그인은 파일 업로드를 위한 플러그인이다.

 -. 무료 라이센스 버전이 Flash를 사용한다.

 -. 플래쉬를 사용하지 않고 HTML5를 사용하려면 유료 라이센스인 UplodiFive를 구입해야 한다.

 -. UploadiFive를 사용한 방법은 http://wickedmagic.tistory.com/533 페이지에 기술해 두었다.



01. 우선 Uplodify(http://www.uploadify.com) 사이트에 접속하여 파일 업로드 기능을 수행할 Uplodify를 다운받자.

 ① Flash Version을 클릭한다.

 ② 다운로드 창이 뜨면 확인을 누르고 uplodify.zip 파일을 다운받는다.





02. 프로젝트를 수행할 폴더에 다운받은 uplodify.zip 파일을 위치시키고 아래 순서대로 작업을 수행한다.

 ① uploadify.zip 파일의 압축을 해제한다.

 ② uploadify 폴더가 생성되면 해당 경로로 이동한다.





03. uplodify 폴더에서 파일을 업로드할 uploads라는 폴더를 생성한다.





04. 이제 Uplodify 소스를 수정해야하는데, 먼저 index.php 파일을 텍스트 편집기를 통해 아래와 같이 수정하자.


 index.php

<?php $timestamp = time(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>UploadiFy Test</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="jquery.uploadify.min.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="uploadify.css">
<style type="text/css">
body {
    font:13px Arial, Helvetica, Sans-serif;
}
#file_upload {
    float:left;
    margin-right:10px;
}
#queue {
    border:1px solid #E5E5E5;
    height:177px;
    overflow:auto;
    margin-bottom:10px;
    padding:0 3px 3px;
    width:300px;
}
</style>
</head>
<body>
<h1>Uploadify Demo</h1>
<form>
    <div id="queue"></div>
    <input id="file_upload" name="file_upload" type="file" multiple="true">
    <a style="position:relative;top:8px;" href="javascript:jQuery('#file_upload').uploadify('upload')">Upload Files</a>
</form>
<script type="text/javascript">
jQuery(document).ready(function() {
    jQuery("#file_upload").uploadify({
          auto : false                                            // 파일 선택 후 여부 자동 업로드 (기본값 : true)
        , removeCompleted : false                          // 파일 업로드 성공 후 업로드 창의 자동 삭제 여부 (기본값 : true)
        , formData : {                                           // formData 설정으로 사용자가 직접 업로드할 파일의 데이터를 지정할 수있다.
              timestamp : "<?= $timestamp; ?>"
            , token : "<?= md5('unique_salt'.$timestamp); ?>"
        }
        , queueID : "queue"                                     // 파일 업로드 상황을 나타내는 창의 위치를 강제적으로 지정한다.
        , swf : "uploadify.swf"                                  // 파일 업로드 이벤트에 사용될 플래쉬 파일
        , uploader : "uploadify.php"                          // 파일 업로드를 수행할 php 파일
        , onUploadComplete : function(file, data) {       // 파일 하나의 업로드 작업이 완료 후 실행되는 트리거
            console.log(data);
        }
    });
});
</script>
</body>
</html>




05. 다음으로 업로드 창의 '취소' 버튼을 나타내기 위해 uploadify.css에서 uploadify-cancel.png의 위치를 수정하자.


 uploadify.css


 ··· 이 하 생 략 ···


.uploadify-queue-item .cancel a {
    background:url("../uploadify/uploadify-cancel.png") 0 0 no-repeat;
    float:right;
    height:16px;
    text-indent:-9999px;
    width:16px;
}


 ··· 이 하 생 략 ···





06. 마지막으로 실질적으로 파일을 업로드할 uploadify.php 를 수정한다.


 uploadify.php

<?php
// 업로드될 파일의 경로를 지정한다.
$targetFolder = "/uploadify/uploads";

$verifyToken = md5('unique_salt'.$_POST['timestamp']);

if(!empty($_FILES) && $_POST['token'] == $verifyToken) {
    $tempFile = $_FILES['Filedata']['tmp_name'];
    $targetPath = $_SERVER['DOCUMENT_ROOT'].$targetFolder;
    $targetFile = rtrim($targetPath, '/').'/'.$_FILES['Filedata']['name'];
   
    // 업로드 할 수 있는 파일의 확장자를 지정한다.
    $fileTypes = array('jpg','jpeg','gif','png');
    $fileParts = pathinfo($_FILES['Filedata']['name']);
   
    if(in_array($fileParts['extension'],$fileTypes)) {
        move_uploaded_file($tempFile,$targetFile);
        echo '1';
    } else {
        echo "업로드 할 수 없는 형식의 파일입니다.";
    }
}
?>




07. index.php를 실행하고 아래와 같은 순서로 작업을 진행해 보자.

 ① SELECT FILES 버튼을 클릭한다.

 ② 업로드할 이미지를 선택하면 하고 확인 버튼을 클릭한다.

 ③ 그럼 파일을 업로드할 파일의 목록이 지정한 영역에 나타나는 것을 확인 할 수 있다.





08. 이제 파일을 업로드 해보자.

 ① Upload Files를 클릭한다.

 ② 그럼 해당파일이 업로드 되는 모습을 확인 할 수 있다.





09. 그럼 이제 위에서 지정한 uploads 폴더로 이동해 보면. 선택한 이미지 파일이 업로드 된것을 확인 할 수 있다.









반응형