나는 지난 한 시간 동안 다음 스크립트를 가지고 놀았고 도대체 무엇이 잘못되고 있는지 알 수 없습니다.
아이디어는 무엇입니까?- 기본적으로 이미지에 데이터를 보관하는 데이터베이스가 있고 해당 데이터 (이미지 파일 이름)를 호출하여 배열에 넣은 다음 zip 생성 스크립트로 전달하려고합니다.
내가 가진 것은 다음과 같습니다.
$query_ImageCollect = "SELECT * FROM image_data WHERE image_dealerid='$dealer_id' AND imagename LIKE '$imageName'";
$ImageCollect = mysql_query($query_ImageCollect, $vwconn) or die(mysql_error());
$row_ImageCollect = mysql_fetch_assoc($ImageCollect);
$totalRows_ImageCollect = mysql_num_rows($ImageCollect);
$counter=0;
do{
$counter=$counter+1;
$ImageUrl=$row_ImageCollect['image_url'];
$getFileNames="../../images/$ImageUrl";
if($counter==1){
$getFiles="'$getFileNames'";
}else{
$getFiles="$getFiles, '$getFileNames'";
}
} while ($row_ImageCollect = mysql_fetch_assoc($ImageCollect));
$groupFiles=array("$getFiles");
$zipName="Pictures.zip";
$zip = new ZipArchive;
$zip->open($zipName, ZipArchive::CREATE);
foreach ($groupFilesas $file) {
$zip->addFile($file);
}
$zip->close();
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipName);
header('Content-Length: ' . filesize($zipName));
readfile($zipName);
또한 결과를 배열로 직접 구문 분석하려고 시도했지만 실패했습니다.
$query_ImageCollect = ("SELECT image_url FROM image_data WHERE image_dealerid='$dealer_id' AND imagename LIKE '$imageName'") or die(mysql_error());
while( $row = mysql_fetch_assoc( $query_ImageCollect )){
$groupFiles[] = $row;
}
$zipName="Pictures.zip";
$zip = new ZipArchive;
$zip->open($zipName, ZipArchive::CREATE);
foreach ($groupFilesas $file) {
$zip->addFile($file);
}
$zip->close();
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipName);
header('Content-Length: ' . filesize($zipName));
readfile($zipName);
어떤 도움이나 제안이라도 대단히 감사하겠습니다. 미리 감사드립니다 :)
쿼리 결과를 올바르게 처리하지 않으므로 실제로 zip에 아무것도 추가하지 않습니다. $ row 배열을 파일 이름으로 전달하려고합니다.$zip->addFile()
또한 쿼리 결과에서 임시 배열을 만든 다음 첫 번째 쿼리 결과 처리 루프의 일부로 모든 작업을 수행 할 수 있도록 처리 할 필요가 없습니다.
또한 두 번째 시도에서 실행을 위해 쿼리를 발행하지 않으므로 처리 할 결과가 없습니다.
대신 이것을 시도하십시오 :-
$query_ImageCollect = "SELECT image_url
FROM image_data
WHERE image_dealerid='$dealer_id'
AND imagename LIKE '$imageName'";
$ImageCollect = mysql_query($query_ImageCollect, $vwconn) or die(mysql_error());
$zipName="Pictures.zip";
$zip = new ZipArchive;
$zip->open($zipName, ZipArchive::CREATE);
while( $row = mysql_fetch_assoc( $ImageCollect)) {
// make sure you dont need to add anything to the
// $row['image_url'] to make a correctly pathed filename
$zip->addFile($row['image_url']);
}
$zip->close();
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipName);
header('Content-Length: ' . filesize($zipName));
readfile($zipName);
어디에서나보고 된 오류가 실제로 없으면 구성에 문제가있는 것입니다. PHP 오류 파일은 HUGH 여야합니다.
또한 수년 동안 사용되지 않는 mysql_ 데이터베이스 확장을 사용하지 마십시오. 특히 이것이 새로운 개발 인 경우 더욱 그렇습니다. 또는로 이동하는 데 도움이 필요하면 여기를 참조하십시오.
mysqli_
PDO
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다