메뉴 건너뛰기

프로그램언어

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
번호 제목 날짜 조회 수
340 리다이렉션(페이지 이동)의 3가지 방법, location.href 2017.03.07 40139
339 [PHP] 게시판 글쓰기와 이미지 파일 DB 저장 및 불러오기 예제 2017.02.19 35888
338 $_SERVER 환경변수 2016.09.21 33237
337 PHP에서 PDF파일 생성하기 2014.02.27 32777
336 PHP에서 자바스크립트 값 가져오기 2014.02.27 31635
335 Class를 이용한 DB Connection 소스 (Oracle, MyS 2014.02.27 30503
334 htmlentities <-> html_entity_decode (엔티티 2014.04.12 30427
333 무조건 알아야 할 PHP 속도 테스트 14 가지 2014.02.27 30280
332 PHP로 Excel 파일 만들기... 2014.02.27 30257
331 Text를 GD 이미지로 뿌리기 2014.02.27 29813
330 php 엑셀 다운로드 구현 2017.03.07 29787
329 글내용 이미지 리사이징 2014.02.27 29446
328 쿠키변수받기 2014.02.27 29211
327 Record Drag/Drop Position 2014.02.27 29201
326 간단한 PHP 파일 업로드, 다운로드 구현 2017.03.06 28547
325 DB상의 많은 파일을 한꺼번에 다운받기 2014.02.27 28332
324 GD를 이용한 스팸성 게시물 차단을 위한 보안 단어 입력 예제 2014.02.27 26945
323 주간날짜 뽑아오기 2014.02.27 26731
322 전화번호에 하이픈(-) 넣기 2015.04.14 26622
321 PHP 변수전달 GET, POST 2015.04.14 26566
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 17 Next
/ 17

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved