메뉴 건너뛰기

프로그램언어

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

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

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


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

// 에러 메시지 뿌리고 history.back() 
function error($msg) { 
echo "<script language="javascript">rn"; 
echo " alert("".$msg."");rn"; 
echo " history.back();rn"; 
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_dir, 0700)) { 
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($fp, filesize( $tmp_dir."/".$file_dir.".zip"))){ 
print($data); 
} 
} else { 
error("서버에 자료파일이 없습니다."); 
} 

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


  1. CodeIgniter에서 PHPExcel 사용하기

  2. No Image 26Mar
    by
    2021/03/26 Views 558 

    csv파일 다루기. fputcsv(), fgetcsv()

  3. No Image 28Sep
    by
    2020/09/28 Views 1255 

    cUrl를 이용한 json 데이타 주고 받기

  4. No Image 12Jan
    by
    2023/01/12 Views 335 

    curl을 이용하여 post, get 방식 으로 데이터 전송하기

  5. No Image 26Mar
    by
    2021/03/26 Views 253 

    current() next() key() 그외 배열관련 함수

  6. No Image 26Mar
    by
    2021/03/26 Views 241 

    date() 함수의 출력 형식

  7. No Image 05Oct
    by
    2020/10/05 Views 431 

    DAUM 지도 API 좌표→주소(주소->좌표) 변환

  8. No Image 14Apr
    by
    2015/04/14 Views 21246 

    DB 내용을 화면에 출력(이중 for 문)

  9. No Image 28Sep
    by
    2018/09/28 Views 6085 

    DB 연동 4단 셀렉트 박스

  10. No Image 27Feb
    by 조쉬
    2014/02/27 Views 28332 

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

  11. No Image 16Jan
    by
    2019/01/16 Views 1850 

    dddotag - 허용하지 않는 태그 걸러내기

  12. No Image 26Mar
    by
    2014/03/26 Views 19535 

    Drag/Drop HTML elements

  13. No Image 12Jan
    by
    2023/01/12 Views 227 

    ereg(), eregi(), ereg_replace(), eregi_replace(), split() 대체

  14. No Image 23Dec
    by
    2016/12/23 Views 19943 

    explode - 문자열 나눔

  15. No Image 19Jul
    by
    2018/07/19 Views 6048 

    fcm 푸시 알림 php 테스트

  16. No Image 23Dec
    by
    2016/12/23 Views 18117 

    fileatime 파일에 최종적으로 접근한 시간을 반환

  17. No Image 14Apr
    by
    2015/04/14 Views 20297 

    fopen 파일 열기

  18. No Image 27Feb
    by
    2014/02/27 Views 21086 

    FPDF - PHP로 PDF 만들기

  19. No Image 19Jul
    by
    2018/07/19 Views 5582 

    gcm 푸시 알림 php 테스트

  20. No Image 23Dec
    by
    2016/12/23 Views 17989 

    gd_info 사용 가능한 GD 라이브러리에 대한 정보를 배열로 반환

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 17 Next
/ 17

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved