2011-08-14 4 views
0

PHP를 사용하여 데이터베이스 테이블에서 나열된 일련의 사진이 포함 된 ZIP 파일을 다운로드하고 강제로 다운로드합니다.PHP ZIP 생성 동일한 파일 크기

모든 것이 훌륭하게 작동하는 것 같지만 사진이 동일한 파일 크기로 계속 다운로드되는 이유를 알 수 없습니다.

나는 압축 된 파일을 올바르게 압축하고 있다고 가정하고있어, 헤더일지도 모르겠다.

아무도 내 문제를 밝힐 수 있습니까?

CODE :

require ("zipfile.inc.php"); 
$zipfile = new zipfile(); 
$filedata = implode("", file("zipfile.inc.php")); 

$getspdi = mysql_query("SELECT * FROM `wedding_photos` WHERE `user_hash` = '$logged[ip]' ORDER BY `id` DESC LIMIT 0, 1000") or die(mysql_error()); 
$getspd = mysql_fetch_array($getspdi); 

while ($photos = mysql_fetch_array($getspdi)) { 
    $zipfile->add_file($filedata, "$photos[img]"); 
} 

header("Content-Type: application/zip"); 
header("Content-Transfer-Encoding: binary"); 

header("Content-disposition: attachment; filename=szipfile.zip"); 
echo $zipfile->file(); 

나는라는 exsisting 클래스를 사용하고 있습니다 "zipfile.inc.php"(http://www.devco.net/code/zipfile.inc.txt).

어떤 도움을 주시면 감사하겠습니다,

감사합니다.

+0

JPG 사진이 이미 내부적으로 압축되어 있으면 컴퓨터에서 사진을 압축하여 결과 크기를 확인하십시오. 대부분은 1 % 이하로만 압축 할 수 있습니다. 압축되지 않은 BMP를 시도하십시오. – Nobody

+0

예를 들어, ZIP (.jpg, .png 등)에 10 장의 사진이있는 경우 모두 정확하게 7,136 바이트 인 것처럼 보입니다./미리보기를 시도 할 때 렌더링되지 않습니다. –

+0

@Nobody, 그는 BMP를 사용하는 것이 첫 번째 장소에서 압축의 목적을 약간 꺾을 것을 제안합니다. Jpg는 아마도 zip 파일에 들어있는 bmp보다 더 잘 압축되었을 것입니다! –

답변

2

이 줄은 아무 의미가 없습니다.

어딘가에서 실제 이미지 데이터를 가져와야합니다.

+0

예제를 제공해 주시겠습니까? –

+0

@Alex 실제 이미지 데이터는 어디에 있습니까? 이미지 파일 자체? –

+0

하위 디렉토리에서 $ photos [img]는 "/weddinguploads/name-of-image.jpg"를 표시합니다. –

2

대부분의 이미지 형식은 이미 압축되어 있습니다. 여기에는 JPEG, PNG 및 GIF가 포함됩니다. ZIP 압축을 사용하면 훨씬 더 많은 형식으로 파일을 압축 할 수 있습니다. 실제로 형식 중 일부는 이미 동일한 압축 알고리즘을 사용하고 있으므로 크기를 전혀 줄이거 나 만들 수 없습니다. 당신이 zipfile.inc.php의 내용을 추가하고 그것을 이미지의 이름을주고있다, 그와

$zipfile->add_file($filedata, "$photos[img]"); 

:

+0

정말 압축을위한 것이 아닙니다. 운송을위한 것입니다. Zip에는 사진 디스플레이를 위해 정기적으로 다운로드해야하는 수백 개의 사진이 포함됩니다. –