Question

les gars moi, je suis le code de fichier writting télécharger, les zip et le fichier de suppression tmp. Mais quand je l'utilise unlink fonction, il ne supprime pas tous les fichiers, quelqu'un peut me expliquer pourquoi?

Préoccupé code php:

$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);
}
Était-ce utile?

La solution

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

Dans ce bloc vous devez remplacer $ chemin avec $ fichier puisque c'est ce que vous les foreaching comme. Vous obtenez l'erreur, car une fois que vous supprimez le lien $ path la première fois, le fichier à $ path est dissociées, mais tous les autres itérations de celui-ci essaie de supprimer le même fichier (ce qui est le dernier affecté à la variable $ path).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top