작성일 댓글 남기기

[펌] 간단한 멀티파일 업로더

기본적인틀은 코드프로젝트에서 따왓는데  어딘지 잘 모르겟네요

스크립트 부분만 조금 수정 했습니다.
해당 위치에 uploads폴더를 만들어 줘야 합니다.

코드 프로젝트 소스에서 파일 추가(+ 버튼)을 누르면  그전에 있던 파일명들이 사라지는
현상 때문에  그부분만 고쳐서 올렸습니다.

최대 5개까지 업로드 가능 입니다.
기본적인 옵션들은 수정 하셔서 쓰시면 될듯합니다. ^^

<?php

if($_POST[‘pgaction’]==”upload”)
    upload();
else
    uploadForm();

//The form having dynamic file uploader
function uploadForm() {
?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=euc-kr” />
<title> :: FILEUPLOAD :: </title>
</head>

<body bgcolor=”#C8C8C8″ leftmargin=”0″ topmargin=”0″ rightmargin=”0″ bottommargin=”0″>
<br>
<form name=”frm” method=”post” onsubmit=”return validate(this);” enctype=”multipart/form-data”>
<input type=”hidden” name=”pgaction”>
    <?php if ($GLOBALS[‘msg’]) { echo ‘<center><span class=”err”>’.$GLOBALS[‘msg’].'</span></center>’; }?>
    <input type=’button’ value=’추가’ onclick=’appendItem()’ />
    <div id=’itemList’>
    <input type=”file”  name=”item_file[]”>
    </div>
    <input type=”submit” value=”Upload File”>
    <div id=’debug’ style=”border:1px solid #000″></div>

</form>
<script type=’text/javascript’>

    var count =0;
    function appendItem()
    {    
        count++;
        if(count > 5)
        {
            alert(“더이상의 파일을 올릴수 없습니다.”);
            count = 5;
        }
        else
        {
                //log(count);
            var newSpanItem = document.createElement(“div”);
            newSpanItem.setAttribute(“id”, “item_”+count);
            var msg_str = ‘<input type=”file”  name=”item_file[]”>’+ ‘<input type=”button” value =”삭제” onclick=”removeItem(‘+count+’)”> ‘;
            //var msg_str =”ddd<br>”;
            newSpanItem.innerHTML = msg_str;

            var itemListNode = document.getElementById(‘itemList’);
            itemListNode.appendChild(newSpanItem);
        }
    }
    

    function removeItem(idCount)
    {
        var item = document.getElementById(“item_”+ idCount);
        if(item != null)
        {
            item.parentNode.removeChild(item);
        }
        count –;
    }


    function validate(f)
    {
        var chkFlg = false;

        for(var i=0; i < f.length; i++)
        {
            if(f.elements[i].type==”file” && f.elements[i].value != “”)
            {
                chkFlg = true;
            }
        }
        if(!chkFlg)
        {
            alert(‘Please browse/choose at least one file’);
            return false;
        }
        f.pgaction.value=’upload’;
        return true;
    }
</script>
</body>
</html>
<?php
}

//function to store uploaded file

function upload(){
    
    if(count($_FILES[“item_file”][‘name’])>0)
    { //check if any file uploaded
        $GLOBALS[‘msg’] = “”; //initiate the global message
        for($j=0; $j < count($_FILES[“item_file”][‘name’]); $j++) { //loop the uploaded file array
            $filen = $_FILES[“item_file”][‘name’][“$j”]; //file name
            $path = ‘uploads/’.$filen; //generate the destination path
            if(move_uploaded_file($_FILES[“item_file”][‘tmp_name’][“$j”],$path)) { //upload the file
                $GLOBALS[‘msg’] .= “File# “.($j+1).” ($filen) uploaded successfully<br>”; //Success message
            }
        }
    }
    else
    {
        $GLOBALS[‘msg’] = “No files found to upload”; //Failed message    
    }
    
    uploadForm(); //display the main form
}
?>

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다