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 :

Copie d'un fichier


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut Copie d'un fichier
    Bonjour,

    j'utilise un input file pour réucpérer le chemin de mon fichier afin de pouvoir le copier par la fonction copy().
    Le problème est que je ne récupère pas le chemin du fichier
    $_POST['chemin'] me retourne juste le nom du fichier.
    $_FILE['chemin']['nom'] ne me retourne rien...

    Pour le moment je travaille en local, mais le but est de copier le fichier sur un serveur à partir d'un intranet.

    Merci.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 68
    Points : 97
    Points
    97
    Par défaut
    Tu veux récupérer le chemin du fichier stocké sur le poste client?
    Si c'est le cas, en php ce n'est pas possible... Avec Javascript je pense que tu peux récupérer le nom du fichier renseigner dans un input file..

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    j'arrive à récupérer le chemin sous IE mais pas sous firefox en php...et en javascript je débute je suis une bille...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    Mais je la récupère en local tu pensse que une fois mise en production ma façon de faire ne fonctionnera pas c'est ça?

  5. #5
    Membre éprouvé Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Points : 1 241
    Points
    1 241
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_FILES['fic']['name']
    va te donner le nom du fichier que tu as uploadé, mais pas le chemin entier (question de sécurité).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_FILES['fic']['tmp_name']
    va te donner le nom du fichier temporaire, celui que tu peux utiliser, éditer, copier ...

    cf. faq

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    sebhm cela ne marche pas
    si je fais un echo je n'ai rien

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    ah sebhm maintenant j'en suis au moment de la copie à acces denied avec le passage par tmp_name

  8. #8
    Membre éprouvé Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Points : 1 241
    Points
    1 241
    Par défaut
    Montre nous ton code
    et dis nous où ca coince

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    voici mon code, il est très sommaire je ne suis qu'au commencement de ma page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    echo '<form ENCTYPE="multipart/form-data">';
    $titre_rub= $_POST['titre_rub'];
    $titre_art=$_POST['titre_art'];
    //$chemin_fichier=$_POST['chemin_fichier'];
    //echo $chemin_fichier;
    $chemin_fichier=$_FILES['chemin_fichier']['tmp_name'];
    echo $titre_rub."         ";
    echo $titre_art;
    echo "erreur".$chemin_fichier;
    mkdir("C:\wamp\www\contenu\articles\ ".$titre_rub);
    copy($chemin_fichier,"C:\wamp\www\contenu\articles\ ".$titre_rub."\ ".$chemain_fichier);
    là ou ça coince $chemin_fichier me renvoie un chemin auquel je n'ai pas les droits d'accès.

  10. #10
    Membre éprouvé Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Points : 1 241
    Points
    1 241
    Par défaut
    $_FILES['chemin_fichier']['tmp_name'] va te renvoyer le chemin absolu (complet) du fichier temporaire uploadé par le serveur.
    Ce fichier est mis dans le répertoire de travail du serveur Apache (enfin je pense, là je suis pas tres calé). Quoiqu'il en soit, je pense que tu y as acces.
    Tu peux essayer de l'ouvrir en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $handle = @fopen($_FILES['chemin_fichier']['tmp_name'], "r");
    if ($handle === FALSE) {
      echo "Erreur : impossible d'ouvrir le fichier <b>".$fic_csv."</b><br />";
    }
    else {
      echo 'Fichier <b>".$fic_csv."</b> ouvert<br />';
    }
    Dis nous ce que ca dit.

    ensuite, si tu veux copier le fichier temporaire, la destination sera plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\wamp\www\contenu\articles\ ".$titre_rub."\ ".$_FILES['chemin_fichier']['name']
    utilise alors le vrai nom du fichier $_FILES['chemin_fichier']['name'] (nom du fichier sur le PC) au lieu de $_FILES['chemin_fichier']['tmp_name'] (chemin absolu du fichier temporaire)
    et attention aux fautes de frappe

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    J'ai pas besoin d'ouvrir ce fichier là merci.C'est un autre fichier que je dois ouvrir pour écrire dedans à une ligne précise, mais je n'arrive pas à me positionner ou il faut pour écrire.
    Mais ça marche pour ce qui est de la copie!

    Merci beaucoup!

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    l'écriture dans un fichier se fait bien par
    fopen(mon fichier,"r+")
    fwrite(mon fopen,mon texte)?

  13. #13
    Membre éprouvé Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Points : 1 241
    Points
    1 241
    Par défaut
    oui si mon_fopen est bien le retour de ta fonction fopen, et que tu l'appelles $mon_fopen

    'r' Ouvre en lecture seule, et place le pointeur de fichier au début du fichier.
    'r+' Ouvre en lecture et écriture, et place le pointeur de fichier au début du fichier.
    'w' Ouvre en écriture seule ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.
    'w+' Ouvre en lecture et écriture ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.
    'a' Ouvre en écriture seule ; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer.
    'a+' Ouvre en lecture et écriture ; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    oui c'est ça et fgets() permet de lire le fichier ligne par ligne.

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    la copie ne marche plus...elle a marché une fois et c'est tout pourtant je n'ai rien changé depuis

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut

    en supprimant une ligne de test j'ai aussi supprimé une ligne qu'il ne fallait pas.
    cette ligne étant de retour la copie fonctionne en local a tester sur serveur...

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

Discussions similaires

  1. [VB6] Impact de la copie d'un fichier
    Par Cereal123 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 31/03/2006, 07h57
  2. Réponses: 12
    Dernier message: 07/12/2005, 18h42
  3. copie de base, fichier mdw, perte des droits
    Par hades666evil dans le forum Access
    Réponses: 2
    Dernier message: 14/09/2005, 17h06
  4. Copie d'un fichier sans montage avec Samba
    Par jean-jacques varvenne dans le forum Réseau
    Réponses: 5
    Dernier message: 14/07/2005, 11h31
  5. copie d'un fichier vers un autre serveur
    Par jexl dans le forum ASP
    Réponses: 4
    Dernier message: 20/12/2004, 16h04

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