2012-10-30 3 views
3

다른 웹 사이트에 호스팅 된 몇 개의 CSV 파일이 있습니다. 다운로드 및 압축을 위해 zip 파일로 패키지를 가져 오려고합니다. 압축은 작동하지만 포장은 항상 비어있는 것 같습니다. 어떤 도움을 많이 주셔서 감사합니다 ... 이것은 PHP에 있습니다.다른 사이트에서 파일 다운로드 및 우편 번호 추가

<?php 

$zip = new ZipArchive(); 
$filename = "test114.zip"; 
$numParts = count($file_names); 
if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) 
{ 
    exit("cannot open <$filename>\n"); 
} 



$file="http://ichart.finance.yahoo.com/table.csv?s=YHOO&d=9&e=25&f=2012&g=d&a=0&b=3&c=2000&ignore=.csv"; 
$filedata = fopen ($file, "r"); 
$contents = fread($filedata, filesize($file)); 
$zip->addFile($filedata, "file1"); 
fclose($filedata); 


$zip->close(); 
header('Content-Type: application/zip'); 
header("Content-Disposition: attachment; filename=\"".$filename."\".zip;"); 
header('Content-Length: ' . filesize($filename)); 
readfile($filename); 

?> 

답변

0

시도는이 라인에서 확장을 제거합니다 :

header("Content-Disposition: attachment; filename=\"".$filename."\";"); 

당신은 이미 (코드) 두 번째 줄에 파일 이름 확장자를 설정합니다.

0

이 시도하고 당신이 당신의 현재 작업 디렉토리에 쓰기 권한이 있는지 확인

<?php 

$zip = new ZipArchive(); 
$filename = "test114.zip"; 

if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) 
{ 
    exit("cannot open <$filename>\n"); 
} 


$file="http://ichart.finance.yahoo.com/table.csv?s=YHOO&d=9&e=25&f=2012&g=d&a=0&b=3&c=2000&ignore=.csv"; 
$filedata = file_get_contents($file); 
$zip->addFromString("file1", $filedata); 
$zip->close(); 

$path = getcwd()."/".$filename; 

header("Content-Transfer-Encoding: Binary "); 
header('Content-Type: application/zip'); 
header("Content-Disposition: attachment; filename=$filename"); 
header('Content-Length: ' . filesize($filename)); 
readfile($path); 


unlink($filename); 

exit; 
?>