메뉴 건너뛰기

프로그램언어

2017.02.19 03:20

파일업로드

조회 수 19352 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

우선 파일이 두개 있어야 겠내요
파일을 받아야 하는 화면과 저장하는 화면..

-----------input.php--------------------------------------------------------
<form name='file_upload' method="post" enctype="multipart/form-data" action='out.php'>
<input type='file' name='file_up' size='12'>   
<INPUT TYPE="checkbox" NAME="del_ok" value="1">삭제 할경우 체크
<BR>
<input type="submit" name="sand" value="입 력">
</form>
-----------------------------------------------------------------------------

위에거 중요한거 집고 넘어가자면..
<form  --- 내용중에 method="post" enctype="multipart/form-data" 이게 중요한듯해요..
뭐 다 중요하지만 간혹 이거없이도 쓰이는 폼이 있는듯하여..
전 enctype="multipart/form-data" 이거 안넣어서 반나절 고생한... ㅋ

파일 받을 이름은 file_up로 했어요..
이정도만 되면 첫 페이지는 대충 된듯 하고요~

-------------------'out.php' 1차--------------------------------------------------
echo "업로드한 파일명 : ".$_FILES["file_up"]["name"] ."<br />";
echo "업로드한 파일의 크기 : ".$_FILES["file_up"]["size"] ."<br />";
echo "업로드한 파일의 MIME Type : ".$_FILES["file_up"]["type"] ."<br />";
echo "임시 디렉토리에 저장된 파일명 : ".$_FILES["file_up"]["tmp_name"]."<br />";
---------------------------------------------------------------------------------

위에거 파일 만들고 실행해 보세요.. 그럼 이게 뭐에 쓰는건지 아실거에요.. 아시겠죠...ㅋ
이거 모른다 하면 답 안나옴..ㅋ

--팁? 이렇게 쓰셔도 되요.. 아래에서는 이걸로 사용할께요---------------------------
echo "업로드한 파일명 : ".$file_up_name."<br />";
echo "업로드한 파일의 크기 : ".$file_up_size."<br />";
echo "업로드한 파일의 MIME Type : ".$file_up_type."<br />";
echo "임시 디렉토리에 저장된 파일명 : ".$file_up"<br />";
-------------------------------------------------------------------------------

이건뭐 간단히 써볼라 했는데 엄청 복잡해지내요..
이제 중요한 move_uploaded_file 함수를 알아 보자구요.
저두 솔직히 잘 모르고.. 함수 이름대로 파일을 move시키는듯 합니다.

move_uploaded_file(임시 디렉토리에 저장된 파일명,저장될 디렉토리및 파일명)
쉽져.. 그럼 우리가 하게될 식은

move_uploaded_file($file_up,$file_up_name);

-------------------'out.php' 2차--------------------------------------------------
echo "업로드한 파일명 : ".$_FILES["file_up"]["name"] ."<br />";
echo "업로드한 파일의 크기 : ".$_FILES["file_up"]["size"] ."<br />";
echo "업로드한 파일의 MIME Type : ".$_FILES["file_up"]["type"] ."<br />";
echo "임시 디렉토리에 저장된 파일명 : ".$_FILES["file_up"]["tmp_name"]."<br />";

move_uploaded_file($file_up,$file_up_name);
---------------------------------------------------------------------------------

짠.. 이렇게 하고 실행하면.. out.php 파일이 있는곳에 업로드한 파일이 생겨요...
그런데... 안되는분 분명히 있을듯.. 왜? 왜 안될까요..

out.php 파일이 있는 폴더 권한문제일겁니다. 777? 로 변경후 사용해보세요~ 그럼 됨니다.
퍼미션 관련글은 생략할께요.. 넘 복잡해져요..

자 그럼 여기까지 됐음 끝?

뭐 대충 끝난듯 하내요~


아래는 제가 쓰는 소스입니다. 너무나 허접하지만 보시고 아~ 이렇게 사용하면 되는구나 생각하심 될듯.


<?

$query="select * from $db_table where aa ='$aa'";
$result=mysql_query($query,$connect);
$data=mysql_fetch_array($result);

//파일삭제에 체크가 되어있다면...
if($del_ok == 1) {
@unlink($data[name]);
$rmdir_dir = explode("/",$data[name]);
$dirname= ($rmdir_dir[0]."/".$rmdir_dir[1]);
rmdir($dirname);
}

//파일삭제에 체크가 되어 있지 않을때
if(!$del_ok == 1) {

//DB 데이터가 없고 파일값도 없을때
if(!$data[name] and !$im_name) { $im_name_in = $data[name]; }
 
//DB 데이터가 없고 파일값이 들어왔을때
if(!$data[name] and $im_name ) {

//저장될 디렉토리
$base_dir = "img_data";

//확장자 검렬
if(!eregi("\.jpg$|\.gif$|\.bmp$",$name_name)) { Error("업로드를 할수 없는 파일 입니다.\\n\\r확장자가 jpg,gif,bmp인경우만 업로드가 가능합니다."); exit; }

//폴더 이름을 유일한값으로 만듬
$dir = time().(double)microtime();

//폴더 생성
mkdir("$base_dir/$dir",0777);

//tmp에 저장된 파일 지정한디렉토리로 이동
move_uploaded_file($name,"$base_dir/$dir/$name_name");

//DB에 입력할 이름
$im_name_in = "$base_dir/$dir/$name_name";


}


//DB 데이터가 있고 파일값이 없을때
if($data[name] and !$im_name) { $im_name_in = $data[name]; }

//DB 데이터가 있고 새파일이 들어왔을때
if($data[name] and $im_name) {

//저장될 디렉토리
$base_dir = "img_data";

//확장자 검렬
if(!eregi("\.jpg$|\.gif$|\.bmp$",$name_name)) { Error("업로드를 할수 없는 파일 입니다.\\n\\r확장자가 jpg,gif,bmp인경우만 업로드가 가능합니다."); exit; }

//폴더 이름을 유일한값으로 만듬
$dir = time().(double)microtime();

//폴더 생성
mkdir("$base_dir/$dir",0777);

//tmp에 저장된 파일 지정한디렉토리로 이동
move_uploaded_file($name,"$base_dir/$dir/$name_name");

//DB에 입력할 이름
$im_name_in = "$base_dir/$dir/$name_name";

//기존 자료 삭제
@unlink($data[im_name]);
$rmdir_dir = explode("/",$data[im_name]);
$dirname= ($rmdir_dir[0]."/".$rmdir_dir[1]);
@rmdir($dirname);

clearstatcache();
}

}

mysql_query("update $db_table set
name='$im_name_in',
where
no ='$no'
",$connect);
?>


List of Articles
번호 제목 날짜 조회 수
280 PHP와 HTML과 자바스크립트의 관계 2021.03.26 310
279 TIFF, GIF 여러장 변환 file 2021.03.26 323
278 정규표현식 2021.03.26 311
277 date() 함수의 출력 형식 2021.03.26 241
276 확장자 추출 하기 2021.03.26 306
275 서브도메인 세션 공유 2021.03.26 537
274 가변변수로 만든 배열 2021.03.26 272
273 HEREDOC <<< ( PHP에서 echo로 HTML쉽게 표시하기 ) 2021.03.26 370
272 배열 연산자 []= 에 대해서 2021.03.26 231
271 Predefined Variables (미리 정의된 변수들) 2021.03.26 274
270 current() next() key() 그외 배열관련 함수 2021.03.26 253
269 비교연산자 ( === 에 관해서 ) 2021.03.25 307
268 큰따옴표(") 와 작은따옴표(') 2021.03.25 270
267 mysql_free_result(); 관련 오류 2021.03.25 288
266 phpMyAdmin WebMysql 에 CSV 엑셀 파일 업로드 입력하기 ( Excel / Upload / data / 데이터 / 데이타 ) file 2021.03.25 725
265 PHP + 유튜브(youtube) 동영상 업로드 연동 소스 2021.01.21 1129
264 다중파일 업로드 + 이미지 미리보기 (Javascript, jQuery ) file 2020.12.15 903
263 경로 제외한 파일 이름만 선택하는 방법, Basename() 2020.11.23 429
262 쿠키 확인 후 만료시 세션 파괴하는 방법 2020.11.23 312
261 DAUM 지도 API 좌표→주소(주소->좌표) 변환 2020.10.05 431
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved