[RESOLU] Fonction move_uploaded_file ne fonctionne pas! :(

Long
Invité n'ayant pas de compte PHPfrance

30 mai 2013, 20:38

Bonjour à tous!
Ma fonction [b]move_uploaded_file() ne fonctionne pas[/b]! Aidez-moi, SVP! Merci d'avance!
La route de mon serveur est: http://localhost/~truonghc/
Et la route de mon repertoire Uploads est : http://localhost/~truonghc/Uploads/

Le fichier de formulaire formulaire.php:

[code][html]<form action="cible.php" method="post" enctype="multipart/form-data">
p>Formulaire d'envoi de fichier<br/>
<input type="file" name="monfichier" />
</p>
<input type="submit" name="submit" value="submit" />
</form>[/html][/code]


Le fichier cible.php:

[code][php]<?php
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
// Testons si le fichier n'est pas trop gros
if ($_FILES['monfichier']['size'] <= 1000000)
{
// Testons si l'extension est autorisée
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
if (in_array($extension_upload, $extensions_autorisees))
{
// On peut valider le fichier et le stocker définitivement
$fichier = basename($_FILES['monfichier']['name']);
if(move_uploaded_file($_FILES['monfichier']['tmp_name'], '/~truonghc/Uploads/' .$fichier))
echo "L'envoi a bien été effectué !";
else echo 'Echec de l\'upload !';
}
}
}
?>[/php][/code]

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

30 mai 2013, 21:14

salut,


Est ce qu'il y a un message d'erreur qui va avec ?
si ce n'est pas le cas vérifie l'error_reporting, il doit être au E_ALL.

est ce que /~truonghc/Uploads/ est un chemin valide sur ton serveur ?

que donne un var_dump($_FILES) ?

@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 619 Messages

30 mai 2013, 21:21

Bonjour,

essaie de mettre
if(move_uploaded_file($_FILES['monfichier']['tmp_name'], $_SERVER['DOCUMENT_ROOT'].'/Uploads/' .$fichier)) 
ou juste le chemin vers uploads
if(move_uploaded_file($_FILES['monfichier']['tmp_name'], 'Uploads/' .$fichier))
Modifié en dernier par ghost5922 le 30 mai 2013, 21:23, modifié 1 fois.

Long
Invité n'ayant pas de compte PHPfrance

30 mai 2013, 21:22

Je ne sáis pas. Je pense que cette fonction ne fonctionne pas parce que la route n'est pas bon! Alors j'ai cité ma route du serveur en haut. Quand je les lançais. Il s'affichait le message: Echec de l'upload ! Voila!

Mammouth du PHP | 619 Messages

30 mai 2013, 21:28

Re,

tu as tester mes deux solutions ?

Eléphanteau du PHP | 16 Messages

30 mai 2013, 21:31

Salut ghost5922
Je viens de tester tes solutions, mais il s'affichait encore ce truc "Echec de l'upload !". Et j'ai vérifier dans le répertoire Uploads, il n'y avait rien.

Mammouth du PHP | 619 Messages

30 mai 2013, 21:38

Ok et tu as mi la ligne que moogli ta dit
error_reporting(E_ALL);
en haut de ton fichier

Mammouth du PHP | 619 Messages

30 mai 2013, 21:45

retire le if de la fonction voir l'erreur
<?php
error_reporting(E_ALL);
         // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
         if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
         {
            // Testons si le fichier n'est pas trop gros
            if ($_FILES['monfichier']['size'] <= 1000000)
            {
                // Testons si l'extension est autorisée
                $infosfichier = pathinfo($_FILES['monfichier']['name']);
                $extension_upload = $infosfichier['extension'];
                $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
                if (in_array($extension_upload, $extensions_autorisees))
                {
                        // On peut valider le fichier et le stocker définitivement
                        $fichier = basename($_FILES['monfichier']['name']);
                        /*if(move_uploaded_file($_FILES['monfichier']['tmp_name'], '/~truonghc/Uploads/' .$fichier)) 
                           echo "L'envoi a bien été effectué !";
                        else echo 'Echec de l\'upload !';*/
						move_uploaded_file($_FILES['monfichier']['tmp_name'], 'Uploads/' .$fichier);
                }
            }
         }
?>
ton fichier toi être a la racine

/cible.php
/Uploads/

Eléphanteau du PHP | 16 Messages

30 mai 2013, 21:48

Je dois mettre cette ligne où dans mon code?
J'ai met ce truc comme ca:
<?php
...
else echo 'Echec de l\'upload !';
error_reporting(E_ALL);
?>
Mais il n'y avait rien est changé

Mammouth du PHP | 619 Messages

30 mai 2013, 21:49

copie le code que je te mi plus haut

Eléphanteau du PHP | 16 Messages

30 mai 2013, 21:55

Non, les deux fichiers cible.php et formulaire.php dans le répertoire /codes

Mammouth du PHP | 619 Messages

30 mai 2013, 21:57

ok donc cela donne

/codes/cible.php
/Uploads/

? si oui test cela
<?php
error_reporting(E_ALL);
         // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
         if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
         {
            // Testons si le fichier n'est pas trop gros
            if ($_FILES['monfichier']['size'] <= 1000000)
            {
                // Testons si l'extension est autorisée
                $infosfichier = pathinfo($_FILES['monfichier']['name']);
                $extension_upload = $infosfichier['extension'];
                $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
                if (in_array($extension_upload, $extensions_autorisees))
                {
                        // On peut valider le fichier et le stocker définitivement
                        $fichier = basename($_FILES['monfichier']['name']);
                        /*if(move_uploaded_file($_FILES['monfichier']['tmp_name'], '/~truonghc/Uploads/' .$fichier)) 
                           echo "L'envoi a bien été effectué !";
                        else echo 'Echec de l\'upload !';*/
						move_uploaded_file($_FILES['monfichier']['tmp_name'], '../Uploads/' .$fichier);
                }
            }
         }
?>

Eléphanteau du PHP | 16 Messages

30 mai 2013, 22:00

Je viens de copier tes code et J'ai mis deux fichier en route /cible.php et fichier /formulaire.php aussi. Il marche bien. Mais si ils se trouvent dans le répertoire /codes alors il marche pas.

Mammouth du PHP | 619 Messages

30 mai 2013, 22:05

et avec celui juste au dessus ?

Eléphanteau du PHP | 16 Messages

30 mai 2013, 22:06

Ok, il a fonctionne bien. Merci ghost5922 :D