salve. ho un problema con pclzip. creo il file lato server e lo invio tramite readfile;
una volta ricevuto il file zip (contiene solo file di testo .txt) lo apro, apro un file a caso, e quando lo chiudo l'applicazione che utlizzo (in questo caso winrar) mi dice che sono state aggiunte/modificate delle informazioni sul file e se voglio aggiornare l'archivio. O_O
sembra quasi che in chiusura aggiunga del testo al file (anche se in realtà non è così).
qualcuno ha qualche idea? il codice che genera e invia è il seguente :
Codice PHP:
// creo files al volo
$i=0;
while ($row = mysql_fetch_array($query, MYSQL_NUM)) {
// elimino vecchi riferimenti ai sides
unset($cpos);
// aggiungo titoli nel txt
$title[$i]=$row[1]." - ".$row[2]." - ".$row[3];
// toglie carattere "," che fà confusione nella creazione del file
$stringwcs=$title[$i];
$stringwcs=trim(str_replace(",", "", $stringwcs));
$title[$i]=$stringwcs;
$trackid=$row[0];
$file = fopen("./temp/".$stringwcs.".txt", "w");
$fwrite = fwrite($file, $stringwcs."\r\n");
// preparo gli indici ai sides $j=0;
$queryside = mysql_query("SELECT sidepos FROM itemsside WHERE trackid='$trackid' ORDER by itemssideid",$mydb);
while ($row = mysql_fetch_array($queryside, MYSQL_NUM)) {
$cpos[$j]=$row[0]; $j++; }
$nside=sizeof($cpos);
// creo file singola tracklist
$j=0;
$countp=0;
$queryline = mysql_query("SELECT hours, minuts, seconds, atl FROM items where trackid='$trackid' ORDER by itemid",$mydb);
while ($rowz = mysql_fetch_array($queryline, MYSQL_NUM)) {
if (($j+1)<10) {
$fwrite = fwrite($file, "\r\n0".($j+1)." - ".$rowz[0].":".$rowz[1].":".$rowz[2]." - ".$rowz[3]);
} else $fwrite = fwrite($file, "\r\n".($j+1)." - ".$rowz[0].":".$rowz[1].":".$rowz[2]." - ".$rowz[3]); $j++;
}
fclose($file); $i++; }
// creo lo zip
include_once("./lib/pclzip.lib.php");
$data=date("Y-m-d");
if ($_GET['all']=='0') $zipstring="./temp/".$trackid."-GTW-Tracklist.zip";
if ($_GET['all']=='1') $zipstring="./temp/".$data."-GTW-Tracklist.zip";
$filezip=new PclZip($zipstring);
// aggiungo i txt nello zip
for($i=0; $i<sizeof($title); $i++) {
// inserisce i txt nel file zip
$v_list = $filezip->add("./temp/".$title[$i].".txt", PCLZIP_OPT_REMOVE_ALL_PATH);
if ($v_list == 0) { die("Error : ".$filezip->errorInfo(true)); } }
// invio file
header("Content-type: application/zip");
header("Content-Disposition: attachment; filename=$zipstring");
header("Content-Description: Backup");
header("Content-Length: ".filesize($zipstring));
readfile($zipstring);
unlink($zipstring);
exit;
non ho propio idea del perchè succeda questo... in locale funziona senza problemi. quando lo metto sul server mi dà questo inconveniente.
saluti