Alors voila, je suis en train de faire un site pour afficher/stocker/télécharger des photos d'un mariage.
Donc je souhaiterais que l'utilisateur, dans un formulaire, donne un fichier zip.
Je traite le zip (je fais quelques traitement sur le nom des fichiers à l'intérieur de l'archive, avant de dezipper), et ensuite donc le dezipper.
Mais c'est là que çà coince.
Je ne pense pas que çà soit une question de droits, car pour effectuer des test, j'ai passe mes dossiers avec un chmod 777 (je suis sous un Ubuntu avec lamp).
Je vous joins le bout de code qui traite le zip
ps : j'ai commenté temporairement la création de l'album pour mettre un nombre fixe (je changerais ca plus tard :p)$extensions_ok = array('zip'); $err = ''; if(!isset($_FILES['zip'])) { $err .= 'Vous n\'avez pas sélectionné de fichiers'. "<br/>"; } if(!in_array( substr(strrchr($_FILES['zip']['name'], '.'), 1), $extensions_ok ) ) { $err .= 'Veuillez sélectionner un fichier de type zip !'. "<br/>"; } if(empty($err)) { $myarchive = $_FILES['zip']['name']; $album_name = substr($myarchive, 0, strrpos($myarchive, '.')); //Creation de l'album ici ... /* $sql = 'INSERT INTO '.$table_album.' VALUES("","'.$album_name.'")'; if(!mysql_query($sql)) { $err .= 'L\'album n\'a pas pu être créer<br/>'; } else { $msg = 'Album crée<br/>'; } $id_album = mysql_insert_id();*/ $id_album = 15; //On recupere l'ID de l'album nouvellement crée. ($id_album) $i = 0; $zip = new ZipArchive; //print_r($_FILES); $res = $zip->open($_FILES['zip']['tmp_name']); if( $res === true ) { //echo 'Nombres fichiers : '.$zip->numFiles.'<br/>'; for($i = 0; $i != $zip->numFiles; $i++) { //echo 'i = '.$i.'<br/>'; //echo 'i = '.$i.' : '.$i+'_'+$zip->getNameIndex($i).'<br/>'; $temp = $id_album.'_'.$zip->getNameIndex($i); //echo 'temp = '.$temp.'<br/>'; $zip->renameIndex($i , $temp); //Insertion dans la base de données des noms des photos $sql = 'INSERT INTO '.$table_photos.' VALUES("",'.$id_album.', "'.$zip->getNameIndex($i).'")'; //Executer la requete } //On verifie $_FILES //print_r($_FILES).'<br/>'; if($zip->extractTo('./photos')) { echo 'Extraction Réussi<br/>'; } else { echo 'Extraction Echouée<br/>'; } for($i = 0; $i < $zip->numFiles; $i++) { //On a extrait les photos, maintenant on créer les vignettes vignette('photos/'.$zip->getNameIndex($i), 'vignettes/'.$zip->getNameIndex($i), 200); } } }
Donc mon problème se trouve if($zip->extractTo('./photos')) je pense
L'architecture de mon site est la suivante
A la racine, j'ai plusieurs dossiers (dont un dossier inc/ et un dossier photos/), et ma page index.php
Le code ci-dessous provient d'une page dans le dossier inc, et j'aimerais stocker mes photos dans le dossier photos.
Je ne sais pas si mon problème bien d'un chemin (j'en ai essayé un paquet, mais à chaque fois, j'ai extraction echoué, et jamais aucun fichier dans mon dossier photos/)
Voila, si vous voyez un problème dans mon code, j'aimerais bien un peu d'aide
Merci d'avance