다중업로드만들기
페이지 정보
작성자 MintState 댓글 0건 조회 14,726회 작성일 08-10-28 15:31본문
다중업로드만들기
쿼리문 부분만 수정해서 사용하시면 됍니다.
파일 이름은 $file_name 이고 저장된 경로와 같은 있는 것은 $s_file_name 입니다.
자바로 폼 추가 기능, 중복 파일이 있을 경우 timestamp 형식의 디렉토리 생성
php관련 파일 전송 제한, 파일 이름 중복 체크, 이미지 미리보기 비율 맞추기,용량 제한
1. 업로드 부분
2. 저장 부분
쿼리문 부분만 수정해서 사용하시면 됍니다.
파일 이름은 $file_name 이고 저장된 경로와 같은 있는 것은 $s_file_name 입니다.
자바로 폼 추가 기능, 중복 파일이 있을 경우 timestamp 형식의 디렉토리 생성
php관련 파일 전송 제한, 파일 이름 중복 체크, 이미지 미리보기 비율 맞추기,용량 제한
1. 업로드 부분
<SCRIPT LANGUAGE="JavaScript"> <!-- // 다중 업로드 var total_image = 1; function add_upload(){ if(total_image < 20){ var objTbl = document.all["upload_file_table"]; var objRow = objTbl.insertRow(); var objCell = objRow.insertCell(); objCell.innerHTML += "<input type='file' name='upload_file["+total_image+"]' size='25' onMouseover=\"image_preview(this);\"><br>"; } total_image++; } // 이미지 미리 보기 var preview = new Image(); function image_preview(obj){ var now_image = false; var temp; preview.src = obj.value; // 지정된 폭, 높이 var imageWidth = 200; var imageHeight = 150; // 이미지 일 경우 미리 보기 if(obj.value.match(/(.jpg|.jpeg|.gif|.png)/)){ preview_image.src = obj.value; // 이미지 비율 var Yrate = preview.width/preview.height; var Xrate = preview.height/preview.width; if(preview.width > imageWidth||preview.height > imageHeight){ // 폭이 지정된 폭보다 클 경우 if(preview.width > imageWidth){ preview_image.width = imageWidth; preview_image.height = imageWidth * Xrate; } // 높이가 지정된 높이보다 클 경우 if(preview.height > imageHeight){ preview_image.height = imageHeight; preview_image.width = imageHeight * Yrate; } } } // 전체 이미지가 없을 경우 이미지 없음으로 for(var i=0; total_image>i; i++){ temp = document.all.upload_test["upload_file["+i+"]"].value; if(temp.match(/(.jpg|.jpeg|.gif|.png)/)){ now_image = true; } } if(!now_image){ preview_image.src = "image_preview.gif"; preview_image.width = 120; preview_image.height = 90; } } //--> </script> <form name="upload_test" action="test_ok.php" method="post" enctype="multipart/form-data"> <a href="#none" onClick="add_upload();">add upload</a> <!-- 첨부파일 테이블 //--> <table id="upload_file_table"> <tr> <td> <input type='file' name='upload_file[0]' size='25' onMouseover="image_preview(this);" value="test"><br> </td> </tr> </table> <input type="submit" value="전송"> </form> 이미지 미리 보기 <img src="image_preview.gif" name="preview_image" width="120" height="90">
2. 저장 부분
<? function upload_save($save_dir){ global $setup,$HTTP_POST_FILES; // 변수 설정 $thetime = time(); if(!$setup[use_pds]) return false; // 중복 체크 for($i=0; sizeof($HTTP_POST_FILES[upload_file][name])>$i; $i++){ if($HTTP_POST_FILES[upload_file][name][$i]){ $file_names[$i] = $HTTP_POST_FILES[upload_file][name][$i]; } } if($file_names) if(sizeof($file_names)!=sizeof(array_unique($file_names))) error("중복된 파일이 있습니다."); // 업로드 for($i=0; sizeof($HTTP_POST_FILES[upload_file])>$i; $i++){ $file = $HTTP_POST_FILES[upload_file][tmp_name][$i]; $file_name = $HTTP_POST_FILES[upload_file][name][$i]; $file_size = $HTTP_POST_FILES[upload_file][size][$i]; $file_type = $HTTP_POST_FILES[upload_file][type][$i]; // 크기 체크 if($file_size>$setup[max_upload]) error("3Mbyte 이상 업로드 하실 수 없습니다."); if($file_size>0){ $s_file_name = $file_name; // 체크 if(!is_uploaded_file($file)) error("업로드한 파일이 존재 하지 않습니다."); // 확장자 체크 $no_names = array("php","html","inc","phtm","htm","shtm","ztx","dot","asp","cgi","pl"); $_file_name = explode(".",$file_name); for($i2=0; sizeof($_file_name)>$i2; $i2++){ if(in_array(strtolower($_file_name[$i2]),$no_names)) error("HTML, CGI 관련 언어는 올리실 수 없습니다."); } $file = eregi_replace("\\\\","\\",$file); $file_name = str_replace(" ","_",$s_file_name); $s_file_name = str_replace("-","_",$s_file_name); // 디렉토리를 검사함 if(!is_dir($save_dir)) { @mkdir($save_dir,0777); @chmod($save_dir,0706); } // 파일 저장 if(!file_exists($save_dir.$s_file_name)){ if(!move_uploaded_file($file,$save_dir.$s_file_name)) Error("파일업로드가 제대로 되지 않았습니다"); $file_name="data/$id/".$s_file_name; @chmod($file_name,0706); }else{ // 증복 파일이 있을때 @mkdir($save_dir.$thetime,0777); if(!move_uploaded_file($file,$save_dir.$thetime."/".$s_file_name)) Error("파일업로드가 제대로 되지 않았습니다"); $file_name = $save_dir.$thetime."/".$s_file_name; @chmod($file_name,0706); @chmod($save_dir.$thetime,0707); } // 쿼리문 저장 } } } // 에러 함수 function error($message){ echo "$message"; exit; } // 셋업 $setup[use_pds] = 1; // 자료실 기능 사용 $setup[max_upload] = 1024 * 1024 * 3; // 업로드 용량 제한 $id = "talkbox"; $save_dir = "data/".$id."/"; // 저장 폴더 upload_save($save_dir); ?>
|
댓글목록
등록된 댓글이 없습니다.