2013-03-11 2 views
-1

에 PHP를 통해 우편을 만들어이 링크 나 특정 디렉토리에 압축을 만들고 싶습니다 compress/archive folder using php script특정 디렉토리

<?php 
// Config Vars 

$sourcefolder = "./"   ; // Default: "./" 
$zipfilename = "myarchive.zip"; // Default: "myarchive.zip" 
$timeout  = 5000   ; // Default: 5000 

// instantate an iterator (before creating the zip archive, just 
// in case the zip file is created inside the source folder) 
// and traverse the directory to get the file list. 
$dirlist = new RecursiveDirectoryIterator($sourcefolder); 
$filelist = new RecursiveIteratorIterator($dirlist); 

// set script timeout value 
ini_set('max_execution_time', $timeout); 

// instantate object 
$zip = new ZipArchive(); 

// create and open the archive 
if ($zip->open("$zipfilename", ZipArchive::CREATE) !== TRUE) { 
    die ("Could not open archive"); 
} 

// add each file in the file list to the archive 
foreach ($filelist as $key=>$value) { 
    $zip->addFile(realpath($key), $key) or die ("ERROR: Could not add file: $key"); 
} 

// close the archive 
$zip->close(); 
echo "Archive ". $zipfilename . " created successfully."; 

// And provide download link ?> 
<a href="http:<?php echo $zipfilename;?>" target="_blank"> 
Download <?php echo $zipfilename?></a> 

를 통해 PHP를 사용하여 ZIP 파일을 만들려면이 멋진 코드를 발견했다.

+0

파일 이름 대신 zip 파일 이름의 전체 경로를 사용해 보셨습니까? –

+1

"이 훌륭한 코드를 발견했습니다"- 실제로 어떻게 작동하는지 이해하려고 했습니까? 아니면 앱에 붙여 넣기 전에 조정할 수 있습니까? – Gordon

+0

하지만 멋지네. – AlienWebguy

답변

3
$zipfilename = "/path/to/my/zip/folder/myarchive.zip"; 

단순히 폴더가 writable인지 확인하십시오.

+0

다운로드 링크가 잘못 표시되어 링크를 다운로드하지 않고 페이지가 발견되지 않거나 웹 사이트로 전환되어 작동하지 않습니다. –

+0

글쎄, 확실히 당신은 다운로드 링크에 경로를 추가해야합니다 :) – AlienWebguy

+0

폴더는 쓰기가 가능합니다. 충분한 시간이 걸렸기 때문에 –

관련 문제