Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/01/2007, 15h47   #1
Membre du Club
 
Inscription : février 2006
Messages : 335
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 335
Points : 65
Points : 65
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......
insane_80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 15h52   #2
Membre chevronné
 
Avatar de J0r_x
 
Homme
Analyste - Programmeur
Inscription : mai 2006
Messages : 712
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Analyste - Programmeur
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2006
Messages : 712
Points : 607
Points : 607
Tu as bien verifier que le fichier est au bonne endroit ?
J0r_x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 15h53   #3
Membre du Club
 
Inscription : février 2006
Messages : 335
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 335
Points : 65
Points : 65
Oui bien sûr, je l'ai bien vérifié.
insane_80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 16h13   #4
Membre du Club
 
Inscription : février 2006
Messages : 335
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 335
Points : 65
Points : 65
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 ?
insane_80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 16h15   #5
Membre chevronné
 
Avatar de J0r_x
 
Homme
Analyste - Programmeur
Inscription : mai 2006
Messages : 712
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Analyste - Programmeur
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2006
Messages : 712
Points : 607
Points : 607
Code :
1
2
 
echo '<input type="hidden" name="nom" value="'.$value.'"/>';
J0r_x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 16h16   #6
Membre habitué
 
Inscription : juin 2006
Messages : 133
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 133
Points : 125
Points : 125
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 ?
Andalor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 16h49   #7
Membre du Club
 
Inscription : février 2006
Messages : 335
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 335
Points : 65
Points : 65
Le lien c'est ce que j'ai écris dans mon messge:
copy('C:/xx.pdf', basename('Doc.pdf'));

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

J'ai testé aussi :
Code :
echo '<input type="hidden" name="nom" value="'.$value.'"/>';
J'ai fait:
Code :
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 :
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.
insane_80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 17h08   #8
Membre éprouvé
 
Homme
Inscription : mai 2006
Messages : 694
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : mai 2006
Messages : 694
Points : 417
Points : 417
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?
__________________
Pensez au tag
webrider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 17h21   #9
Membre du Club
 
Inscription : février 2006
Messages : 335
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 335
Points : 65
Points : 65
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.
insane_80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 17h25   #10
Membre éprouvé
 
Homme
Inscription : mai 2006
Messages : 694
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : mai 2006
Messages : 694
Points : 417
Points : 417
As-tu fait un fsockopen() vers le serveur?
__________________
Pensez au tag
webrider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 17h43   #11
Membre du Club
 
Inscription : février 2006
Messages : 335
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 335
Points : 65
Points : 65
Non j'ai pas utilisé cette fonction
insane_80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 17h51   #12
Membre du Club
 
Inscription : février 2006
Messages : 335
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 335
Points : 65
Points : 65
Je veux savoir: est-ce qu'on peut affecter une valeur par défaut à "input" de type "file" (<input name="fichier" type="file">)
insane_80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 09h19   #13
Membre éprouvé
 
Homme
Inscription : mai 2006
Messages : 694
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : mai 2006
Messages : 694
Points : 417
Points : 417
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?
__________________
Pensez au tag
webrider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 09h30   #14
Membre du Club
 
Inscription : février 2006
Messages : 335
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 335
Points : 65
Points : 65
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 !
insane_80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 09h42   #15
Membre éprouvé
 
Homme
Inscription : mai 2006
Messages : 694
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : mai 2006
Messages : 694
Points : 417
Points : 417
Malheureusement si ton hébergeur a passé cette variable à 0 alors tu ne pourras pas faire de copie vers un serveur distant, désolé.
__________________
Pensez au tag
webrider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 10h46   #16
Membre du Club
 
Inscription : février 2006
Messages : 335
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 335
Points : 65
Points : 65
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 !
insane_80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 14h51   #17
Membre éprouvé
 
Homme
Inscription : mai 2006
Messages : 694
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : mai 2006
Messages : 694
Points : 417
Points : 417
Pourrais-tu nous donner les quelques lignes précédentes et suivantes de la fonction copy?
__________________
Pensez au tag
webrider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 15h03   #18
Membre du Club
 
Inscription : février 2006
Messages : 335
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 335
Points : 65
Points : 65
Voilà une partie de mon code
Code :
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.
insane_80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 18h30   #19
Membre éprouvé
 
Homme
Inscription : mai 2006
Messages : 694
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : mai 2006
Messages : 694
Points : 417
Points : 417
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.
__________________
Pensez au tag
webrider est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h18.


 
 
 
 
Partenaires

Hébergement Web