wizard think ...
전체태그 | 즐겨찾기 | 질/답게시판 | 흔적남기기 | 로그인 | RSS
  www.ncafe.net
본 사이트 검색
  태그 [다운로드] 에 대한 검색 결과 (1개 검색됨) BODY | TITLE
제목이미지 | 웹프로그래밍 목록 |
WRITTEN BY : 윤영식 2005-10-06 14:04:18 | 조회 : 6,428
[FEED]
[광고숨기기]


DB상의 많은 파일을 한꺼번에 다운받기

<?
    
/***************************************************************
    프로그램명    : filedownload_zip.php
    설명            : 파일 여러개 zip 파일로 묶어서 받기
    작성일자    : 2005-10-06 오후 1:58
    작성자 : 윤영식
    ***************************************************************/

    // 에러 메시지 뿌리고 history.back()
    
function error($msg) {
        echo 
"<script language=\"javascript\">\r\n";
        echo 
"    alert(\"".$msg."\");\r\n";
        echo 
"    history.back();\r\n";
        echo 
"</script>";
        exit();
    }

    
// 디렉토리 통째로 삭제하기....
    
function rm($fileglob) {
       if (
is_string($fileglob)) {
           if (
is_file($fileglob)) {
               return 
unlink($fileglob);
           } else if (
is_dir($fileglob)) {
               
$ok rm("$fileglob/*");
               if (! 
$ok) {
                   return 
false;
               }
               return 
rmdir($fileglob);
           } else {
               
$matching glob($fileglob);
               if (
$matching === false) {
                   
trigger_error(sprintf('No files match supplied glob %s'$fileglob), E_USER_WARNING);
                   return 
false;
               }      
               
$rcs array_map('rm'$matching);
               if (
in_array(false$rcs)) {
                   return 
false;
               }
           }      
       } else if (
is_array($fileglob)) {
           
$rcs array_map('rm'$fileglob);
           if (
in_array(false$rcs)) {
               return 
false;
           }
       } else {
           
trigger_error('Param #1 must be filename or glob pattern, or array of filenames or glob patterns'E_USER_ERROR);
           return 
false;
       }
       return 
true;
    }

    
// 업로드 파일 디렉토리
    
$up_path "../upload";
    
$zip_dir "../upload/tmp_zip";

    
// tmp 디렉토리 만들기 위해서 file_dir 만들기
    
$tmp microtime();
    
$tmp2 explode(" ",$tmp);
    
$file_dir $tmp2[1].sprintf("%03d",(int)($tmp2[0]*1000));
    
$tmp=null;
    
$tmp2=null;
    
    
// tmp 디렉토리
    
$tmp_dir $zip_dir."/".$file_dir;

    
// tmp 디렉토리 생성
    
if(!mkdir ($tmp_dir0700)) {
        
error("파일 생성시 에러가 발생했습니다.");
        exit;
    }

    
$sql "SELECT id, filename FROM table";
    
$result mysql_query($sql);
    
$i=0;
    while(
$row mysql_fetch_assoc($result)) {
        
$org_name "/".$row[file_name];
        
$new_name "/".$id."_".$row[file_name];

        
// tmp 디렉토리로 COPY
        
@copy($up_path.$org_name,$tmp_dir.$new_name);
        
$i++;
    }
    
mysql_free_result($result);
    
mysql_close();
    
    if (!
$i) {
        
rm($tmp_dir);
        
error("선택된 파일이 없습니다.");
        exit;
    }

    
// zip 으로 묶기
    // zip 경로는 서버에서 which zip 을 통해서 알아낸다.
    
@exec("/usr/bin/zip ".$tmp_dir."/".$file_dir.".zip ".$tmp_dir."/*");

    
// 다운로드 받기
    
if( $fp = @fopen$tmp_dir."/".$file_dir.".zip","r")) {
        
Header("Content-type: file/unknown");
        
Header("Content-Disposition: attachment; filename=".$file_dir.".zip");
        
Header("Content-Description: PHP3 Generated Data");

        while (
$data=fread($fpfilesize$tmp_dir."/".$file_dir.".zip"))){
            print(
$data);
        }
    } else {
        
error("서버에 자료파일이 없습니다.");
    }

    
// 임시로 만들어진 모든 데이터 지우기, 단, 사용자가 취소를 누르면 서버상에 임시데이터가 지워지지 않으니 cron 을 통해 하루에 한번씩 지워주면 된다.
    
rm($tmp_dir);
    exit;
?>


정보공유라이선스이 저작물은 정보공유 라이센스 2.0 : 영리금지·개작금지에 따라 이용하실수 있습니다.

태그 : , ,
| 댓글(1) | 엮인글(0) | 삭제 | 목록 | 수정 |
트랙백 주소 : http://wizard.ncafe.net/wt/tb/38    [주소복사]
※ 댓글을 남겨주세요.
(☜ Password : 삭제시 필요합니다.)
(※ 보안글자를 입력해 주세요!)
:: 댓글 ::
BIeu   :: URL : http://blou.tistory.com | 2009-03-29 10:55:27 댓글 | 삭제

어떠헥 활용하는지 알여주세요 ㅠ.ㅠㅜ

[05.10.06] [PHP] 여러파일 통으로 묶어서 다운받기. [1] ... 6,428
  웹프로그래밍 / 태그 : , ,
FIRST | PREV | 1 | NEXT | LAST

정보공유라이선스본 사이트의 내용은 정보공유 라이센스 2.0 : 영리금지를 따릅니다.
단, 각 컨텐츠의 라이센스가 있을 경우 해당 라이센스가 우선합니다.
또한 퍼가실때에는 출처를 밝혀주시기 바랍니다.
 ▶
Calendar Source
about Love...
사람들은 , 큰 일에 ★로 감동하지 않아。
예상밖의 큰 일이 생기면, 오히려 놀랄 뿐이지·...

사랑도 그래 ~
큰 선물과 이벤트 보다는 , 의외로 작은 것에 감동을 받거든~

출처 : http://www.cyworld.com/redbaby486
Wisecrack Source
전체보기 [361]
+ Facebook (Todd Yoon)
+ Twitter (@todd_yoon)
+ My Lover... [67]
+ 사는이야기 [29]
+ 캠핑 [41]
+ I think... [25]
+ 자동차 [29]
+ 블루베리 [1]
+ Enjoy [3]
+ English [5]
+ 웹프로그래밍 [47]
+ HTML/JS/CSS [20]
+ Databases [19]
+ C/C++/VC++ [7]
+ LAPTOP/PDA [12]
+ Phone/갤포아 [16]
+ EOS 400D [9]
+ Linux [14]
+ Windows [14]
+ nCafe 공지 [3]
† 최근 등록된 글
- 2015년 연말정산 준비시 ...
- clientmqueue 뭔가요?
- AWS에 EBS 추가 후 마운트...
- Function eregi() is dep...
- find 파일내용 검색
- 갤럭시 S4 LTE-A 롤리팝
- 릴렉스체어 스킨 교체하기...
- iOS6 베타4 가 오늘 릴리...
- 28th 캠핑 상주 구마이캠...
- 27th 캠핑 음성 백야자연...
† 최근 댓글 minus
할부금미납차 매입/판매 0 1...
 [03.21] 카돌이
*010-4668-6374 설정차량 압...
 [03.11] 차차차
헛..좋은정보네요.. 집에가서...
 [03.20] milkjun
rn \r\n
 [11.05] webIDadsfa
이제야 이 문제를 해결하네요...
 [02.12] 지나가는이
감사합니다. ajax 처음 보는...
 [11.19] 히히
저도 정말 감사드립니다 ㅠㅠ...
 [07.13] wow
퍼가용 ^&^
 [07.09] coriahn
글자 아래 부분이 짤리는 것...
 [06.11] konahn
잘보고 가는데 rn 이런거다 ...
 [05.06] kaspy
† 최근 엮인글 plus
† 태그
, , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
...more
3rd Wizard Homepi
May. 31. 2020. Sun
§ now : 2
§ today : 784 / 784
§ yesterday : 1,234 / 1,234
§ total : 3,050,454
  Since 2006. 02. 19

Counter Source
 Make 2000.03.10
 4th Homepi & Blog
New