Code zum Komprimieren hochgeladener Dateien kann temporäre Dateien nicht löschen

StackOverflow https://stackoverflow.com/questions/6332108

  •  27-10-2019
  •  | 
  •  

Frage

Ich Leute, ich schreibe Code, um Dateien hochzuladen, sie zu komprimieren und tmp-Dateien zu löschen. Aber wenn ich die Funktion Verknüpfung aufheben verwende, werden nicht alle Dateien entfernt. Jemand kann mir erklären, warum?

Betroffener PHP-Code:

$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);
}

War es hilfreich?

Lösung

foreach($files_to_delete AS $file){
    //unlink(dirname(__FILE__).'/'.$path);
}

In diesem Block sollten Sie $ path durch $ file ersetzen, da Sie sie als solche bezeichnen.Sie erhalten den Fehler, weil nach dem ersten Aufheben der Verknüpfung von $ path die Datei unter $ path nicht mehr verknüpft ist, aber bei jeder zweiten Iteration versucht wird, dieselbe Datei zu löschen (die letzte, die der Variablen $ path zugewiesen wurde).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top