IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

$zip->addFile qui ne fonctionne pas


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de dark_vidor
    Homme Profil pro
    Élève
    Inscrit en
    Janvier 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Janvier 2005
    Messages : 321
    Points : 118
    Points
    118
    Par défaut $zip->addFile qui ne fonctionne pas
    Bonjour,

    J'ai fait un script qui (pour faire simple) vérifie le contenu d'un zip, si c'est ok le dezip pour lire un fichier et ensuite reconstituer le zip et supprime le/les dossiers en question.

    voici la dernière fonction sur laquelle je travail

    toutes les verifs file_exists et cie ne sont pas encore implémenté ...

    la fonction debug n'est autre qu'un affichage du tableau avec <pre> print_r() </pre>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    function create_zip()
    {
    	global $_FILES;
     
    	if( file_exists('uploads/test.zip') == TRUE )
    	{
    		unlink('uploads/test.zip');
    	}
     
    	debug( $_FILES );
     
    	$zip = new ZipArchive;
    	if( $zip->open('uploads/test.zip', ZipArchive::CREATE) == TRUE )
    	{
     
    		$a_dir = array('PS3', 'SAVEDATA', $_FILES['replay']['name_BCES']);
    		$a_file = array('ICON0.PNG', 'PARAM.PFD', 'PARAM.SFO', 'PIC1.PNG', 'REPLAY.DAT');
     
    		$path = '';
    		foreach( $a_dir as $value)
    		{
    			if( !$zip->addEmptyDir( $path.$value ) )
    				return FALSE;
    			$path.= $value.'/';
    		}
     
    		foreach( $a_file as $value)
    		{
    			echo $_FILES['replay']['path_BCES_dir'].'/'.$value.', '.$path.$value.'<br>';
    			if( !$zip->addFile( $_FILES['replay']['path_BCES_dir'].$value, $path.$value ) )
    				return FALSE;
    		}
     
    		if( $zip->close() )
    			return TRUE;
    		else  
    			return FALSE;
    	}
    }
    La création du zip et des dossiers est ok, par contre l'ajout de fichiers ne fonctionne pas

    Pourtant les chemins me paraissent bon

    Le premier echo donne
    /homez.47/teamgtne/www/~championnat/uploads/~18a48dddfce1f221ae73c3ac540d47c6/ICON0.PNG, PS3/SAVEDATA/BCES00104-RPLY2-B-3A457A67014/ICON0.PNG
    Or j'ai bien le fichier ICON0.PNG dans le dossier indiqué je ne comprends pas

    Tout est la : http://team-gt5net.com/~championnat/uploads/

    Le dossier avec ~ est le dossier temporaire qui reçoit le contenu du zip
    Il est crée avec un nom différent a chaque fois

    Avez vous des idées sur l'erreur

    Merci par avance

  2. #2
    FoxLeRenard
    Invité(e)
    Par défaut
    Oui oui il faut nettoyer ta variable car
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    http://team-gt5net.com/~championnat/uploads/~18a48dddfce1f221ae73c3ac540d47c6/ICON0.PNG
    contient bien l'image, mais pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /homez.47/teamgtne/www/~championnat/uploads/~18a48dddfce1f221ae73c3ac540d47c6/ICON0.PNG, PS3/SAVEDATA/BCES00104-RPLY2-B-3A457A67014/ICON0.PNG
    du reste tu vois que ton ECHO te donnes un chemin précédent le chemin relatif du visiteur donc a virer !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /homez.47/teamgtne/


    Ensuite l'image est répétée entre le temporaire et le réel !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ~18a48dddfce1f221ae73c3ac540d47c6/ICON0.PNG, 
    PS3/SAVEDATA/BCES00104-RPLY2-B-3A457A67014/ICON0.PNG

  3. #3
    Membre régulier Avatar de dark_vidor
    Homme Profil pro
    Élève
    Inscrit en
    Janvier 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Janvier 2005
    Messages : 321
    Points : 118
    Points
    118
    Par défaut
    En fait le chemin est créer de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    				$_FILES['replay']['name_tmp_dir'] = md5(uniqid(rand(), true));
    				$_FILES['replay']['path_tmp_dir'] = getcwd() . '/uploads/~' . $_FILES['replay']['name_tmp_dir'];
    donc normalement il est tjrs bon, il dépends pas de l'utilisateur mais de l'endroit ou est le script sur le serveur non ?

    Ensuite l'image est répétée entre le temporaire et le réel !!
    j'ai pas compris

  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par dark_vidor Voir le message
    En fait le chemin est créer de la manière suivante : ........
    Oui bien compris mais tu vois que pour que moi je regardes une des images, il faut que je prenne que le centre de ce que tu nous donnait en echo donc

    http://team-gt5net.com/~championnat/...47c6/ICON0.PNG

    Voila c' est tout, pour le reste je ne sais pas t'aider car je croyais que pour que l'ajout marche il fallait ce chemin que je t' indiques

  5. #5
    Membre régulier Avatar de dark_vidor
    Homme Profil pro
    Élève
    Inscrit en
    Janvier 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Janvier 2005
    Messages : 321
    Points : 118
    Points
    118
    Par défaut
    non le chemin absolu (par rapport a la racine seveur) fonctionne aussi en théorie mais du coup j'ai un doute aussi

  6. #6
    Membre régulier Avatar de dark_vidor
    Homme Profil pro
    Élève
    Inscrit en
    Janvier 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Janvier 2005
    Messages : 321
    Points : 118
    Points
    118
    Par défaut
    Il faut que je me réveille !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo $_FILES['replay']['path_BCES_dir'].'/'.$value.', '.$path.$value.'<br>';
     
    if( !$zip->addFile( $_FILES['replay']['path_BCES_dir'].$value, $path.$value ) )
    LA SOLUTION
    .'/'.
    entre $_FILES['replay']['path_BCES_dir'] et $value

    je l'ai mise dans le echo mais pas dans la fonction addFile

    BOULET Vidor !

  7. #7
    FoxLeRenard
    Invité(e)
    Par défaut
    Houp's c' est toujour comme ça, a la fin on trouve que c'était enfantin mais ça ne l'est jamais
    A++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Code qui ne fonctionne pas sur Mac
    Par malbaladejo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/01/2005, 11h08
  2. [SQL] Requête à jointure qui ne fonctionne pas
    Par Bensor dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/12/2004, 16h10
  3. Jointure externe qui ne fonctionne pas
    Par Guizz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/02/2004, 12h26
  4. CREATEFILEMAPPING qui ne fonctionne pas???
    Par Jasmine dans le forum MFC
    Réponses: 2
    Dernier message: 06/01/2004, 19h33
  5. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo