2010-07-14 4 views
0

J'essaie d'exiger un téléchargement de fichier dans un formulaire, mais je n'arrive pas à le faire fonctionner. Des idées? Je préfère faire écho à l'erreur PHP sur la page par rapport à un popup javascript. Merci d'avoir jeté un coup d'oeil:Exiger le téléchargement d'un fichier au format HTML/PHP

<?php 


// initialize $file1 
$file1 = $_POST['file1']; 


// check upload of $file1 
if ($file1 == '') { 
$error = "Please upload an image"; 
} 


?> 


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>Require upload of an file</title> 
</head> 

<body> 

<?php if ($error) {echo $error;} ?> 

<br /><br /><br /> 

<form id="form1" name="form1" method="post" action="nextpage.php"> 

<input type="file" size="8" name="file1" /> 

<input name="Submit" type="Submit" /> 

</form> 



</body> 
</html> 

Répondre

2

Voir this tutorial Il a tout ce dont vous avez besoin.

Pour résumer:

  • Utilisez enctype="multipart/form-data" et method="POST" dans la balise <form>.
  • En PHP, utilisez $_FILES['uploadedfile']['name'] pour lire le nom d'origine ("uploadedfile" est le nom de votre fichier d'entrée - "file1" dans votre exemple).
  • En PHP, utilisez $_FILES['uploadedfile']['tmp_name'] pour lire le nom du fichier temporaire côté serveur.
  • En PHP, utilisez $_FILES['uploadedfile']['error'] pour obtenir l'erreur (le cas échéant) see there pour les codes possibles. Pour plus d'informations, voir également PHP manual.

Dans votre exemple utiliser ce formulaire à la place:

<form id="form1" name="form1" method="post" action="nextpage.php" enctype="multipart/form-data"> 
    <input type="file" size="8" name="file1" /> 
    <input name="Submit" type="Submit" /> 
</form> 

Dans "nextpage.php":

//Use $_FILES['file1'] to check the file upload... 
print_r($_FILES['file1']); 
+0

Merci pour votre aide. Si je saute le téléchargement de fichier, il va toujours à la page suivante. Je dois les empêcher d'accéder à la page suivante sans télécharger le fichier. – Barry

+0

Avec votre design actuel, vous ne pouvez pas faire cela comme action = "nextpage.php". Vous pouvez définir une action sur la page où se trouve le formulaire et si le formulaire valide va à nextpage.php ou si vous souhaitez effectuer la validation de formulaire dans nextpage.php, vous pouvez rediriger vers le formulaire avec un appel d'emplacement d'en-tête. – AlexV

+0

Je l'ai changé pour: action = "" mais cela ne nécessite pas le téléchargement du fichier. – Barry

Questions connexes