Codice PHP:
## Output file
$output = $_SERVER['DOCUMENT_ROOT']."/zip/".str_replace(array(" ", ".") , "", microtime()).".zip";
############################
# ciclo che crea la lista di file in filenames
############################
## E' solo un esempio
while($condizione)
$filenames .= ' "'.$pathalfile."'"; ## Lo spazio all'inizio è importante
###############################################
exec('zip -j '.$output.$filenames);
$temp = tmpfile();
$src = fopen($output, 'r');
while(!feof($src))
{
$content = fread($src, 100000);
fputs($temp, $content);
}
fclose ($src);
unlink($output);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename=FileTemp.zip;" );
header("Content-Transfer-Encoding: binary");
fseek($temp, 0);
while(!feof($temp))
{
echo fread($temp, 100000);
}
exit();
Me lo ha detto sempre la mamma di studiare.
tmpfile() cercatevelo nel manuale per sapere che fa