2013-10-23 3 views
2

저는이 작업을하고 있지만, 모든 파일 크기가 0 인 zip 폴더를 살펴볼 때, 파일을 zip에 추가하지 않고 시도했지만 시도했지만 크기가 0이되는 지퍼에 추가하십시오. 이유가 무엇입니까? 첫 번째 인수로 /uploads/ 디렉토리의 경로를 통과 $zip->addFile($file_folder, $filename);php zip 아카이브가 파일을 추가하지 않고 있습니다.

현재 :

여기

if(isset($_FILES['file'])){ 

    $file_folder = "uploads/"; 

    $zip = new ZipArchive(); 
    $zip_name = time().".zip"; 
    $open = $zip->open("zip/".$zip_name, ZipArchive::CREATE); 

    if($open === true){ 
     for($i = 0; $i < count($_FILES['file']['name']); $i++) 
     { 
     $filename = $_FILES['file']['name'][$i]; 
     $tmpname = $_FILES['file']['tmp_name'][$i]; 

     move_uploaded_file($tmpname, "uploads/".$filename); 

     $zip->addFile($file_folder, $filename); 
     } 
    $zip->close(); 

    if(file_exists("zip/".$zip_name)){ 
    // zip is in there, delete the temp files 
    echo "Works"; 
    for($i = 0; $i < count($_FILES['file']['name']); $i++) 
    { 
     $filenameu = $_FILES['file']['name'][$i]; 
     unlink("uploads/".$filenameu); 
    } 
    } else { 
     // zip not created, give error 
     echo "something went wrong, try again"; 
    } 

    } 
} 
+2

'$ 이는 zip> addFile (. $ file_folder $ 파일 이름, $ 파일 이름),'지금 완벽하게 작동, 그 – naththedeveloper

+0

감사하십시오 : D –

답변

1

귀하의 문제가이 선에 놓여 내 PHP입니다.

Zip::addFiledocumentation에 따르면 추가 할 파일 (이 파일과 확장명을 포함)까지 경로를 전달해야합니다.

파일 이름을 포함하도록 코드를 변경하십시오 (이미 변수 $filename로되어 있음).

$zip->addFile($file_folder.$filename, $filename);