메뉴 건너뛰기

PHP
2016.02.15 15:10

down.php 다운로드 구현

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

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

업로드시 실제파일명을 따로 저장하고 업로드파일명은 time으로 저장하여 파일명중복을 피했다

down.php에서는 저장된 파일명으로 파일을 가져와서 실제저장할때는 실제파일명으로 바꿔서 다운로드되도록함

 

 

<?php

  ob_start();
 include "include/dbconfig.php";
 $query = "select upfile,save_name from $dbtable where no='$no'";
 $result2 = mysql_query ($query); // 글 꺼내기
 while ($data2 = mysql_fetch_array ($result2))
 {
  $upfile  = $data2[0];
  $save_name = $data2[1];
 }
 $file  = "./main/upload/".strtolower(substr(strstr($dbtable,"_"),1))."/".$save_name; //<-- 절대 경로 사용 불가 / 상대경로 사용 가능

if(file_exists($file)){
 header('Accept-Ranges: bytes');
 header('Content-Type: ' . $row->type);
 header("content-length: ". filesize("$file"));
 header("Content-Disposition: attachment; filename=$upfile");
 header('Pragma: cache');
 header('Cache-Control: max-age=2592000');
 header('Expires: ' . substr(gmdate('r', strtotime('+1 MONTH')), 0, - 5) . 'GMT');

 if(is_file("$file")) {
  $fp = fopen("$file", "r");
  if(!fpassthru($fp)) {
   fclose($fp);
  }
 }
 fpassthru($fp);
 fclose($fp);
 echo "
  <Script>
  self.close();
  </Script>
 ";
} else {
 echo "
  <Script>
  alert('첨부파일이 존재하지 않습니다.');
  self.close();
  //    history.go(-1);
  </Script>
 ";
}
?>

 

 

 

아래 방법은 초기에 쓰던 다운로드인데 익스6,7,8에서 에러를 뿜기어냄...ㅡ.ㅡ;

------------------------------------------------

 

<?php
 ob_start();
 include "include/dbconfig.php";

 $query = "select upfile,save_name from $dbtable where no='$no'";
 $result2 = mysql_query ($query); // 글 꺼내기
 while ($data2 = mysql_fetch_array ($result2))
 {
  $upfile  = $data2[0];
  $save_name = $data2[1];
 }
 $file  = "./main/upload/".strtolower(substr(strstr($dbtable,"_"),1))."/".$save_name; //<-- 절대 경로 사용 불가 / 상대경로 사용 가능
//한글명저장안됨 유니크한 이름으로 저장하고 한글파일명을 따로저장 나중에 다운로드시 해당 파일명으로 저장
//echo $file;
 if(file_exists($file)){
 header("Content-Type: doesn/matter");
 header("content-length: ". filesize("$file"));
 header("Content-Disposition: attachment; filename=$upfile");
 header("Content-Transfer-Encoding: binary");
 header("Pragma: no-cache");
 header("Expires: 0");
 
  if(is_file("$file")) {
    $fp = fopen("$file", "r");
 
   if(!fpassthru($fp)) {
     fclose($fp);
    }
   }
 
  } else {
   echo "
   <Script>
    alert('첨부파일이 존재하지 않습니다.');
    self.close();
//    history.go(-1);
   </Script>
     ";
  }
 
// mysql_free_result($result);
// mysql_close($dbconn);
 
?>

[출처] down.php 다운로드|작성자 쫑이


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
48 Apache APM 설치 apache 2.4 / php 5.5 / mariadb 10.0 맨하탄노숙자 2017.05.23 2
47 Apache APM 맨하탄노숙자 2017.02.06 49
46 PHP How To Use Systemctl to Manage Systemd Services and Units 맨하탄노숙자 2016.07.19 31
45 PHP php-fpm systemctl 추가 맨하탄노숙자 2016.07.19 29
44 php gd-library 소스 경로 및 컴파일 옵션 맨하탄노숙자 2016.04.17 44
43 PHP PHP 5.2.17 컴파일시 오류 발생 file 맨하탄노숙자 2016.04.17 48
42 Apache 스토리지 웹서버 secret 맨하탄노숙자 2016.04.17 0
41 Apache Apache의 Worker / Prefork 방식의 차이점과 세팅 방법 맨하탄노숙자 2016.04.17 36
40 Apache [CENTOS] apache web server switching from prefork to worker MPM 맨하탄노숙자 2016.04.17 89
39 PHP PHP 4 Memcache 맨하탄노숙자 2016.03.06 64
38 NGINX nginx location 설정 맨하탄노숙자 2016.02.18 80
37 NGINX nginx 파일 공유 및 암호 설정하기 맨하탄노숙자 2016.02.18 188
36 NGINX nginx에서 동영상 스트리밍 서비스하기 맨하탄노숙자 2016.02.18 52
35 PHP PHP/cURL download progress monitoring 맨하탄노숙자 2016.02.15 40
34 PHP cURL download progress in PHP file 맨하탄노숙자 2016.02.15 88
33 이미지 다운로드시 다운로드 진행상황 표시 file 맨하탄노숙자 2016.02.15 75
32 PHP 파일 업로드 진행상황표시 file 맨하탄노숙자 2016.02.15 72
31 PHP 다운로드 구현 상태 (진행 상황 표시) 맨하탄노숙자 2016.02.15 60
30 PHP UTF-8 파일 다운로드 함수 맨하탄노숙자 2016.02.15 73
» PHP down.php 다운로드 구현 맨하탄노숙자 2016.02.15 91
Board Pagination Prev 1 2 ... 3 Next
/ 3