2010-03-23 8 views
1

Je reçois l'erreur suivante lors du téléchargement d'une archive zip.thumbs.db bousiller ma routine de téléchargement

Warning: ZipArchive::extractTo(C:\xampplite\htdocs\testsite/wp-content/themes/mytheme//styles\mytheme/Thumbs.db) [ziparchive.extractto]: failed to open stream: Permission denied in C:\xampplite\htdocs\testsite\wp-content\themes\mythem\uploader.php on line 17 

La chose je ne peux pas tout à fait est que je ne vois pas un fichier thumbs.db soit dans l'archive zip ou le dossier de destination qui a été créé (le téléchargement traite encore, je viens d'obtenir ces erreurs).

La fonction est ci-dessous, la ligne 17 est commenté ...

function openZip($file_to_open) { 
    global $target; 
    $zip = new ZipArchive(); 
    $x = $zip->open($file_to_open); 
    if($x === true) { 
     $zip->extractTo($target); //this is line 17 
     $zip->close(); 

     unlink($file_to_open); 
    } else { 
     die("There was a problem. Please try again!"); 
    } 
} 

Répondre

0

Ce chemin est tout foiré C: \ xampplite \ htdocs \ testsite/wp-content/themes/MyTheme // styles \ mytheme/Thumbs.db

Je suppose que cela pourrait être un problème de Windows.

pouvez-vous ajouter une ligne au-dessus la ligne 17 en disant

echo $file_to_open; exit; 

et nous dire ce qu'il dit lorsque vous essayez de télécharger le fichier?

+0

C: \ xampplite \ htdocs \ testsite/wp-content/themes/mythème/myupgradefile.zip bien –

+0

, je ne sais pas comment les fenêtres poignées chemin avec barre oblique mixtes et caractères backslash, peut-être certains utilisateurs gagnants peuvent aider ici. est le répertoire C: \ xampplite \ htdocs \ tests/wp-content/themes/mytheme qui existe? Apache peut-il y écrire? – kodisha

+0

barres obliques mixtes sont ok en php –

0

En supposant que le chemin tronqué fonctionne, il y a un fichier thumbs.db dans le répertoire de destination (par défaut un fichier caché), et/ou votre script n'a pas l'autorisation d'écrire dans ce fichier/répertoire. Windows est très important en crachant "autorisation refusée" lorsqu'un fichier est utilisé par un autre processus, plutôt que de dire "En cours d'utilisation par le processus XXX".

1

Cela ressemble à juste un avertissement. Je l'ignorerais. Je parie que l'erreur se produit quand il a essayé d'écraser le fichier thumbs.db dans le répertoire d'extraction.

Vous pouvez également utiliser getNameIndex pour obtenir une liste de fichiers, filtrer thumbs.db et utiliser le second paramètre de extractTo pour filtrer les fichiers.

http://www.php.net/manual/en/function.ziparchive-getnameindex.php http://www.php.net/manual/en/function.ziparchive-extractto.php

Questions connexes