PHP | php 파일업로드

페이지 정보

작성자 : 에렐리앙 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 날짜 : 작성일14-06-11 11:06 조회 : 539회

본문

풀소스는 아래와 같다. 이 소스는 확인을 거친 소스이다. 만약에 실행이 안되면,
지금 사용하는​ php버전이 낮다거나, 디렉토리 설정을 잘못 해줬기 때문이다.
 
upload.html
<html>
<body>
//속성을 설정해서 서버에 폼 정보와 함께 파일이 전송된다는 것을 알려주다.
 <form action="upload.php" method="post" enctype="multipart/form-data"/>
  <div>
//업로드할 파일의 최대 크기를 설정하는 폼 필드가 있어야 한다. 서버에서도 설정해줄 수 있는 부분이다.
//만약 폼에서 사용된다면 폼 필드의 이름은 반드시, MAX_FILE_SIZE여야 한다. value값은 업로드 할 수 있는 파일의 바이트
//단위 크기이다. 지금 1000000은 대략1MB정도 된다.
   <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />

   <label for="userfile">upload a file : </label>
//타입을 파일로 해야, 업로드 할 수 있수있다.
<input type="file" name="userfile" id="usefile" />
   <input type="submit" value="send file" />
  </div>
 </form>
</body>
</html>​
  • ​$_FILES['userfile']['tmp_name'] - 이 웹 서버에 임시로 저장된 파일의 위치
  • ​$_FILES['userfile']['name'​] - 사용자 시스템에 있을 때의 파일이름
  • ​$_FILES['userfile']['size'] - 파일의 바이트 크기
  • ​$_FILES['userfile']['type'] - MIME 타입을 가리킨다. ex) text/plain 이나 image/gif
upload.php​
​//대부분 오류검사하는 코드이다. 파일 업로드는 보안상 위험하기 때문에 가능한한 위험을 줄여야 한다.
//올린파일에 특정문자가 삽입되면, 서버상에서 특정한 동작을 할 수 있기 때문에, 항상 올린 파일을 검사해야한다.
<html>
<body>
<?php
if($_FILES['userfile']['error'] > 0) //오류코드 검사. 0이면 오류없음
{
 echo 'Problem: ';
 switch($_FILES['userfile']['error'])
 {
  case 1: echo 'File exceeded upload_max_filesize'; //업로드한 파일 사이즈가 php.ini에 설정한 값보다 클때
   break;
  case 2: echo 'File exceeded max_file_size'; //업로드한 파일 사이즈가 html에서 명시한 MAX_FILE_SIZE보다 클때
   break; 
  case 3: echo 'File only partially uploaded'; //부분 업로드만 되었을  때
   break;
  case 4: echo 'Cannot upload file: No temp directory specified'; //파일이 업로드 되지 않았을 때
   break;
  case 6: echo 'Cannot upload file: No temp directory specified';
 //php.ini에 임시 디렉터리가 지정되지 않았다(php 5.0.3부터 도입)
   break;
  case 7: echo 'Upload failed: Cannot write to disk';
   break;
 }
 exit;
}
if ($_FILES['userfile']['type'] != 'text/plain'){ //mime타입이 text가 아닐때..
 echo 'Problem : file is not plain text';
 exit;
}
//파일을 원하는 곳으로 옮긴다.(주의!! 스크림트가 끝날 때까지 파일을 옮기거나 이름을 바꿔주지 않으면 파일은 지워진다)
$upfile = './uploads/'.$_FILES['userfile']['name'];
//경로 설정을 알아서 잘해보세요~요부분 신기하네요. 문자열같은데 업로드를 한다니, 어쨌든 소스는 잘 돌아갑니다.
if(is_uploaded_file($_FILES['userfile']['tmp_name']))
{
 if(!move_uploaded_file($_FILES['userfile']['tmp_name'], $upfile))
 {
  echo 'Problem : Coult not move file to destination directory';
  exit;
 }
}
else
{
 echo 'Problem : Possible file upload attack. Filename : ';
 echo $_FILES['userfile']['name'];
 exit;
}
echo 'File uploaded successfully<br><br>';
$contents = file_get_contents($upfile);
$contents = strip_tags($contents);
file_put_contents($_FILES['userfile']['name'], $contents);
//업로드한 내용을 보여준다.
echo '<p>Priview of uploaded file contents:<br /><hr />';
echo nl2br($contents);
echo '<br /><hr />'
?>
</body>
</html>
[출처] php 파일업로드|작성자 SniperM
Total 23건 1 페이지
게시물 검색
웹스터디 목록
번호 제목 글쓴이 날짜 조회
23 PHP 검색엔진 만들때 GET으로 한글파라미터 넘기면 깨지는 문제 에렐리안 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 15-06-12 415
22 PHP php 썸네일 이미지 만들기 에렐리안 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 15-06-03 613
21 PHP xml rss 정보 평문으로 불러와 파일로 저장하기! 에렐리안 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 15-02-13 367
20 PHP function exists [ 파일 or 디렉토리 있는지 체크 ] 에렐리안 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 14-10-30 323
19 PHP 그누보드에서 레벨로 관리자 권한주기 에렐리안 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 14-07-17 583
18 PHP 문자열 자를때 한글 깨짐 방지(mb_substr) 에렐리앙 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 14-06-20 428
17 PHP [함수] 자료실(파일) 용량을 줄여서 표현하기 에렐리앙 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 14-06-11 388
열람중 PHP php 파일업로드 에렐리앙 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 14-06-11 540
15 PHP mcrypt 확장모듈을 불러올 수 없습니다. <br />PHP 환경설정을 검사하십시오. 에렐리앙 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 14-06-05 455
14 PHP PHP - 쿠키저장 에렐리앙 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 14-04-11 426
13 PHP 내사이트에 다른사이트 정보제공 에렐리앙 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 14-02-10 376
12 PHP 로그인 회원가입 부분만 부분SSL 처리 에렐리앙 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 13-12-04 487
11 PHP asp right() 힘수 php로 만들기 에렐리앙 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 13-01-14 500
10 PHP [함수] php5 자동 섬네일 만들기 함수 JPG, GIF용 에렐리앙 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-12-26 588
9 PHP php함수 모음 에렐리앙 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-12-26 586
8 PHP utf-8 사용시 substr 한글 깨짐 에렐리앙 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-12-23 666
7 PHP replace php버젼 에렐리앙 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-03-03 1858
6 PHP PHP에서 MYSQL 접속테스트 에렐리앙 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-03-03 2069
5 PHP PHP 함수정리 에렐리앙 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-02-10 699
4 PHP addslashes()함수의 역활 에렐리앙 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-01-11 1631
Today 402 Yesterday 448
Total 131,854