Il codice per comprimere i file caricati non riesce a eliminare i file temporanei
Domanda
Ragazzi, sto scrivendo il codice per caricare i file, comprimerli ed eliminare il file tmp. Ma quando uso la funzione unlink , non rimuove tutti i file, qualcuno può spiegarmi perché?
Codice php interessato:
$zip = new ZipArchive();
$target_path = 'img/products/';
$zip->open($target_path.$id_insert.'.zip', ZIPARCHIVE::CREATE);
$img_count = $_POST['count_file'];
for ($i = 1; $i <= $img_count; $i++){
$temp = 'img'.$i;
$file = $i.'-'.$id_insert.'-'.$_FILES[$temp]['name'];
$path = $target_path.basename($file);
if(move_uploaded_file($_FILES[$temp]['tmp_name'], $path)) {
$zip->addFile($path, basename($file));
$files_to_delete[] = $path;
}
}
$zip->close();
foreach($files_to_delete AS $file){
//unlink(dirname(__FILE__).'/'.$path);
}
Soluzione
foreach($files_to_delete AS $file){
//unlink(dirname(__FILE__).'/'.$path);
}
In questo blocco dovresti sostituire $ path con $ file poiché questo è ciò per cui li imposti.Si ottiene l'errore perché dopo aver scollegato $ path la prima volta, il file in $ path è scollegato, ma ogni altra iterazione tenta di eliminare lo stesso file (che è l'ultimo assegnato alla variabile $ path).
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow