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 :

Utilisation de Copy


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Par défaut Utilisation de Copy
    Bonjour,
    Pour Uploader un fichier local vers un seveur, j'utilise la syntaxe suivante:
    copy($fichier, basename('Doc.pdf'));
    telque "fichier" le nom de la variable contenant la valeur de input de type file (parcourir)
    Mais lorsque je veux utiliser directement la chaine du chemin exp:copy('C:/xx.pdf', basename('Doc.pdf')); ça marche pas !!!. Il donne l'erreur suivant:
    Warning: copy(C:/xx.pdf): failed to open stream: No such file or directory in......

  2. #2
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Par défaut
    Tu as bien verifier que le fichier est au bonne endroit ?

  3. #3
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Par défaut
    Oui bien sûr, je l'ai bien vérifié.

  4. #4
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Par défaut
    J'ai une idée:
    Je vais essayer de créer et cacher un input de type file pointant vers ce fichier !
    comment donner la valeur de ce fichier à cet input ?

  5. #5
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<input type="hidden" name="nom" value="'.$value.'"/>';

  6. #6
    Membre éprouvé
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Par défaut
    Pourtant, j'ai testé ton copy et il marche très bien sous la forme où tu veux l'écrire.

    Moi, je me retournerais vers la possibilité qu'il y est un soucis avec le liens que tu rentres dans ton copy.

    Quel est ce lien ?

  7. #7
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Par défaut
    Le lien c'est ce que j'ai écris dans mon messge:
    copy('C:/xx.pdf', basename('Doc.pdf'));

    =============================================

    J'ai testé aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<input type="hidden" name="nom" value="'.$value.'"/>';
    J'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <? $value='C:\xx.pdf'?>
          <td colspan="2"><? echo '<input type="hidden" name="nom" value="'.$value.'"/>' ?>&nbsp;</td>
          <td>&nbsp;</td>
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    copy($nom, basename('Doc.pdf'));
    mais il me donne la même erreur!.

    N'oublions pas que le fichier existe chez le client (localement), pas au serveur.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Que vient faire basename là-dedans? Je ne pense pas que ce soit nécessaire.

    La copie du fichier est-elle de local à local ou de local vers serveur?

  9. #9
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Par défaut
    1-Oui, tu as raison : basename n'est pas nécessaire, mais c'est pas le problème!

    2-La copie du fichier est de local vers serveur.

  10. #10
    Invité
    Invité(e)
    Par défaut
    As-tu fait un fsockopen() vers le serveur?

  11. #11
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Par défaut
    Non j'ai pas utilisé cette fonction

  12. #12
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Par défaut
    Je veux savoir: est-ce qu'on peut affecter une valeur par défaut à "input" de type "file" (<input name="fichier" type="file">)

  13. #13
    Invité
    Invité(e)
    Par défaut
    Excuse-moi pas besoin de socket pour cette fonction, erreur de ma part.

    La variable allow_url_fopen de ton php.ini est-elle passée à 1?

  14. #14
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Par défaut
    Je teste chez un hébérgeur, je ne sais pas est-ce que la variable allow_url_fopen est passée à 1 ou non !

  15. #15
    Invité
    Invité(e)
    Par défaut
    Malheureusement si ton hébergeur a passé cette variable à 0 alors tu ne pourras pas faire de copie vers un serveur distant, désolé.

  16. #16
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Par défaut
    Je pense que vous n'avez pas bien compris le problème ! Mon problème c'est que j'ai une erreur lorsque je met directement le chemin du fichier dans la fonction copy, alors que cette fonction fonctionne bien lorsque je passe le chemin du fichier à l'aide de parcourir !

  17. #17
    Invité
    Invité(e)
    Par défaut
    Pourrais-tu nous donner les quelques lignes précédentes et suivantes de la fonction copy?

  18. #18
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Par défaut
    Voilà une partie de mon code
    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
     
    if ($test=="upload"){ 
     
     
       copy('C:/xx.pdf', basename('Doc.pdf'));
       copy($fichier1, basename('Doc1.pdf'));
       copy($fichier2, basename('Doc2.pdf'));
       copy($fichier3, basename('Doc3.pdf'));
     
       echo "<font>---</font><br /><br />";}
     
    	require "phpmailer/class.phpmailer.php";
    	$mail = new PHPmailer();
    	//$mail->IsSMTP();
    	$mail->IsHTML(true);
    	//$mail->Host='hote_smtp';
    	$mail->From='xxxxx@gmail.com';
    	$mail->AddAddress('yyyyy@gmail.com');
    	$mail->AddReplyTo('zzzzzz@gmail.com');
    Et merci d'avance.

  19. #19
    Invité
    Invité(e)
    Par défaut
    Une petite question toute bête mais qui me fait hésiter me vient à l'esprit...

    C:/xx.pdf exprimé ainsi dans la fonction ne voudrait-il pas dire que ce fichier est sur le disque C par rapport au serveur et non en local? En d'autres mots PHP tente d'ouvrir ce document sur le serveur et non sur l'ordinateur client, du coup il ne le trouve pas et ton erreur est légitime.

    En passant par un formulaire de type file le fichier n'est plus cherché sur le serveur mais bien sur le disque local et du coup celui-ci est trouvé donc pas d'erreur.

Discussions similaires

  1. [XL-2007] utilisation de "copy destination"
    Par electrons dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/01/2014, 18h46
  2. Réponses: 2
    Dernier message: 16/12/2006, 12h01
  3. Réponses: 13
    Dernier message: 10/11/2006, 10h24
  4. Réponses: 4
    Dernier message: 14/07/2006, 03h30
  5. Copie de 2 bases SQLserver en utilisant des fichiers
    Par dimdidi dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/08/2005, 10h26

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