2009-06-09 10 views
0

J'essaye de télécharger un fichier à un serveur en utilisant PHP. Je ne peux pas le faire fonctionner. Voici le code:Problèmes de téléchargement d'un fichier dans php

if(isset($_POST['Upload'])) 
{ 

    //size condition 
    if ($_FILES['uploaded']['size'] > 350000) 
    { 
     $mesg = "Your file is too large.<br>"; 
     exit; 
    } 

    if(move_uploaded_file($_FILES['uploaded']['tmp_name'], "upload/" . $_FILES['uploaded']['name'])) 
    { 
     $mesg = "The file ". basename($_FILES['uploaded']['name']). " has been uploaded";  
    } 
    else 
    {  
     $mesg = "Sorry, there was a problem uploading your file."; 
    }  
} 
else 
{ 
    $mesg = "Select a File to upload."; 
} 

Voici le code pour la forme que je utilise pour soumettre le fichier:

<? 
echo $mesg; 
?> 
<br /><br /> 
<form enctype="multipart/form-data" action="" method="POST"> 
Please choose a file: <input name="uploaded" type="file" /><br /> 
<input type="submit" value="Upload" /> 
</form> 

Répondre

3

Votre bouton d'envoi n'a pas de nom:

<input type="submit" value="Upload" /> 

Vous regardez pour $_POST['Upload'], vous voulez probablement:

<input type="submit" value="Upload" name="Upload" /> 
+0

wow ... Je ne peux pas croire J'ai manqué ça. Merci! –

6

Vous avez besoin enctype="multipart/form-data" dans votre balise <form> ou rien ne sera téléchargé.

Pour en savoir plus, consultez le PHP manual. En outre, je ne suis pas sûr si vous faites cela pour tester la fonctionnalité, mais vous devriez vous méfier de mettre les fichiers téléchargés dans un dossier accessible sur le Web, en particulier avec leurs noms d'origine. Cela laisse une porte ouverte à quelqu'un pour télécharger un script malveillant et potentiellement prendre le contrôle de votre serveur.

+2

+1 excellent point de sécurité –

+0

Ceci est dans une zone protégée par mot de passe que seulement 2 ou 3 personnes auront accès à, donc je ne suis pas inquiet pour les scripts malveillants. –

+0

j'ai ajouté l'enctype = "multipart/form-données" et j'ai toujours le même problème –

1

Changer votre formulaire

<form action="" method="POST" enctype="multipart/form-data"> 
+0

j'ai ajouté l'enctype = "multipart/form-données" et je suis toujours avoir le même problème –

Questions connexes