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 18/07/2007, 20h28   #1
al1
Invité de passage
 
Inscription : mai 2002
Messages : 22
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 22
Points : 3
Points : 3
Envoyer un message via MSN à al1
Par défaut Transfert de fichier

Bonjour,

J'ai un petit soucis avec un code classique que j'ai trouvé sur le net.
Il permet d'envoyer un fichier de mon poste (client) vers le serveur.

Voici ma 1 ère page :

Code HTML :
1
2
3
4
5
6
7
8
9
<form enctype="multipart/form-data" action="2.php" method="post">
 
  <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
 
  Envoyez ce fichier : <input name="userfile" type="file" />
  <input type="submit" value="Envoyer le fichier" ;/>
 
 
</form>

et ma page php

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
// En PHP < 4.1.0, $HTTP_POST_FILES doit être utilisé
//    à la place de $HTTP_POST_FILES.
 
 
 
$uploaddir ='\\intranet\Fr\NewWeb\IT\test';
$uploadfile = $uploaddir . basename($HTTP_POST_FILES['userfile']['name']);
 
echo '<pre>';
if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "Le fichier est valide, et a été téléchargé
           avec succès. Voici plus d'informations :\n";
} else {
    echo "Attaque potentielle par téléchargement de fichiers.
          Voici plus d'informations :\n";
}
 
echo 'Voici quelques informations de déboguage :';
print_r($HTTP_POST_FILES);
 
echo '</pre>';
 
?>
Jutilise du php 4.0

Voici le résultat du print_r

Attaque potentielle par téléchargement de fichiers.
Voici plus d'informations :
Voici quelques informations de déboguage :
Code X :
1
2
3
4
5
6
7
8
9
10
Array
(
    [userfile] => Array
        (
            [name] => bom.JPG
            [type] => image/jpeg
            [tmp_name] => none
            [size] => 0
        )
)


Le fichier ne se transfert pas.
Pour info mon serveur est en windows.
Perso j'ai un doute sur cette variable uploaddir
al1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 08h55   #2
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605

Fais un et tu risques de voir apparaître :
Citation:
\intranet\Fr\NewWeb\IT\test
il te manque le second anti-slash car il est échappé par le premier.
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 18h02   #3
al1
Invité de passage
 
Inscription : mai 2002
Messages : 22
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 22
Points : 3
Points : 3
Envoyer un message via MSN à al1
Merci trotters213 (trop fort ton avatar)

J'ai fais quelques modifs :

Code :
$uploaddir ='\\\intranet\Fr\NewWeb\IT\test\\';
j'ai essayer aussi

Code :
$uploaddir ='c:\Fr\NewWeb\IT\test\\';
ça aussi :

Code :
$uploaddir ='c:\\Fr\NewWeb\IT\test\\';
j'ai toujours le même message.

Quand je fais un print de $uploadfile

c:\Fr\NewWeb\IT\test\bom.JPG

ou

\\intranet\Fr\NewWeb\IT\test\bom.JPG

Pourtant mon chemin est correct
al1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 18h22   #4
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605
Mais tu as une erreur ou c'est juste que rien se télécharge ?

Tu utilises quelle version de PHP (précisément) parce que move_uploaded_file n'est utilisable que depuis la 4.0.3 et tu dis utiliser la 4.0.

Regarde également la valeur de retour de move_uploaded_file et pour finir regarde tes variables safe mode et open_basedir dans ton php.ini, ça peut venir de là.

PS : merci pour l'avatar
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 19h04   #5
al1
Invité de passage
 
Inscription : mai 2002
Messages : 22
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 22
Points : 3
Points : 3
Envoyer un message via MSN à al1
Le problème est que le fichier ne se transfert pas de mon poste client vers le serveur. Donc move_uploaded_file renvois FAUX.

Oupss j'ai la version 4.07. Et la fonction move_uploaded_file peut être utilisé sur cette version.

Sur le php.ini

open_basedir ==> no value no value
safe mode ==> off off

Ca viendrais de ces variables.
Il faudrait mettre safe_mode à On
et pour open_basedir ?
al1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 19h27   #6
al1
Invité de passage
 
Inscription : mai 2002
Messages : 22
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 22
Points : 3
Points : 3
Envoyer un message via MSN à al1
J'ai modifier la variable $uploaddir

$uploaddir ='c:/Fr/NewWeb/IT/test/';

C'est bizarre car quand je prends un fichier .txt ou .xls ça marche.
Les .jpg, .doc ou .pdf ... ne se tranfert pas et ma fonction move_uploaded_file renvois False ?????
al1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 12h11   #7
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605
Dans ton php.ini, tu as bien error_reporting à "E_ALL | E_STRICT" ?
Parce qu'il y a 2 raisons pour lesquelles move_uploaded_file renvoit faux mais elles sont différentes : http://fr.php.net/move_uploaded_file
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2007, 18h06   #8
al1
Invité de passage
 
Inscription : mai 2002
Messages : 22
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 22
Points : 3
Points : 3
Envoyer un message via MSN à al1
J'ai refais un test sans rien avoir modifier depuis ma dernière modif : ça marche !!

Tous les types de fichiers passent !!

Merci
al1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h45.


 
 
 
 
Partenaires

Hébergement Web