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 :

Déplacement de fichier avec rename


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 497
    Billets dans le blog
    1
    Par défaut Déplacement de fichier avec rename
    Bonsoir,

    j'essaie de déplacer un fichier en faisant ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $str1='../upload1/script/'.$file;
    $str2='../upload1/image/'.$file;
    if(!rename($str1,$str2)){...
    mais au lieu de déplacer le fichier, j'obtiens ce warning :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: rename(../upload1/script/clubhouse.gif ,../upload1/image/clubhouse.gif ) [function.rename]: No such file or directory in /homez.187/kitskats/www/uploadscript/continuer.php on line 119
    et pourtant, le fichier dans $str1 existe bien. Comment faire ?

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    Tu dois avoir un pb de point de vue pour le "calcul" du chemin en relatif...

    Tu indiques '../upload1/script/'.$file mais ça se réfère à quoi ? PHP résoud ce type de chemin grâce à la propriété incliude_path du php.ini... Il ne prend pas l'emplacement du script courant.

    L'emplacemment du script en cours s'obtient avec : __DIR__

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 497
    Billets dans le blog
    1
    Par défaut
    Du coup, je récupère le répertoire courant (avec getcwd()), en vue d'utiliser un chemin absolu avec rename, mais il me rajoute un truc devant le nom du chemin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getcwd:/homez.187/kitskats/www/uploadscript
    . Comment ne pas avoir ce "homez.187" ? (Aucune idée de ce que c'est)

  4. #4
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 497
    Billets dans le blog
    1
    Par défaut
    Comme le chemin absolu est toujours le même, je peux faire encore plus simple, mais apparemment, "rename" ne marche pas avec des chemins absolus ; donc, comment faire ?

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    Apparemment ?

    Je peux t'assurer que rename fonctionne avec des chemins absolus...

    Extrait de la doc officielle :
    rename (PHP 3, PHP 4, PHP 5)
    rename -- Renomme un fichier ou un dossier

    Description
    bool rename ( string oldname, string newname [, resource context] )
    rename() tente de renommer oldname en newname.

    Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.


    Exemple 1. Exemple avec rename()
    <?php
    rename("/tmp/tmp_file.txt", "/home/user/login/docs/mon_file.txt");
    ?>

    Note : Avant PHP 4.3.3, rename() ne pouvait pas renommer des fichiers entre différentes partitions Unix.

    Note : Depuis PHP 5.0.0, rename() peut aussi être utilisée avec certains gestionnaires d'URL. Reportez vous à Annexe O pour une liste des gestionnaires qui supportent rename().

    Note : Le gestionnaire utilisé dans le paramètre oldname DOIT être le même que celui utilisé dans newname.

    Note : Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contexts, référez-vous à Référence CLX, Flux.

    Voir aussi copy(), unlink() et move_uploaded_file().

  6. #6
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 497
    Billets dans le blog
    1
    Par défaut
    Oui, je te crois (bien que cet extrait de la doc ne me le prouve pas), mais cela dit, j'obtiens ce warning :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: rename(http://www.kitskats.com/upload1/script/new2.gif ,http://www.kitskats.com/upload1/image/new2.gif ) [function.rename]: No such file or directory in /homez.187/kitskats/www/uploadscript/continuer.php on line 115
    avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $str1="http://www.kitskats.com/upload1/script/".$file;
    $str2="http://www.kitskats.com/upload1/image/".$file;
     
    if(!rename($str1,$str2)){...
    (et le fichier dans $str1 existe bien, donc quelle est la solution ?)

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

Discussions similaires

  1. problème renommage fichier avec rename()
    Par nicomax34 dans le forum Langage
    Réponses: 2
    Dernier message: 22/10/2010, 18h32
  2. Ecraser un fichier existant avec rename
    Par melleb dans le forum C
    Réponses: 4
    Dernier message: 02/03/2010, 17h59
  3. [SQL] Modifier un fichier HTML statique en cache avec rename()
    Par warpyou dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 19/09/2006, 10h32
  4. [VB6] [Réseau] Récupérer la taille d'un fichier avec inet
    Par pcpunch dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 20/02/2003, 21h38
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17

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