Bonjour les gens. Merci pour toute l'aide que je ai reçu ici. Je essayais d'écrire un fichier de téléchargement. Ce était ok jusqu'à ce que je ai commencé les rapports d'erreurs. D'abord je ai essayé d'inspecter le fichier téléchargé en demandant au print_r pour montrer le tableau associé de nom, le type, la taille, et tmp_name erreur. Il fonctionne bien, mais il donne cette erreur comme je charge la page


Notice: Undefined index: file_upload dans C: \ wamp \ www \ btb_sandbox \ upload.php sur la ligne 27



Je ne ai pas le prendre tout à fait sérieux, alors je continue mes rapports d'erreur. Il a donné les erreurs suivantes


Notice: Undefined index: file_upload dans C: \ wamp \ www \ btb_sandbox \ upload.php sur la ligne 18

Notice: Undefined index: dans C: \ wamp \ www \ btb_sandbox \ upload.php sur la ligne 19


Je comprends que file_upload est pas définie, mais je ne sais pas comment aller autour d'elle. Ou est-ce de mes balises HTML? Se il vous plaît aider. Voici le code. Merci

Se il vous plaît pardonnez-moi. Je ne parle pas bien français. Le code est en anglais. Espoir son tout droit. Merci beaucoup.

[= Php code]<?php

//In an application, this could be moved to a config file
$upload_errors = array
(//http://www.php.net/manual/en/features.file-upload.errors.php

UPLOAD_ERR_OK => "No Errors.",
UPLOAD_ERR_INI_SIZE => "Larger than upload_max_filesize.",
UPLOAD_ERR_FORM_SIZE => "Larger than form MAX_FILE_SIZE.",
UPLOAD_ERR_PARTIAL => "Partial upload.",
UPLOAD_ERR_NO_FILE => "No file.",
UPLOAD_ERR_NO_TMP_DIR => "No temporary directory",
UPLOAD_ERR_CANT_WRITE => "Can't write to disk",
UPLOAD_ERR_EXTENSION => "File upload stopped by extension."
);


$error = $_FILES['file_upload']['error'];
$message = $upload_errors[$error];





//print_r( is the one giving me Notice: Undefined index: file_upload in C:\wamp\www\btb_sandbox\upload.php on line 4. Echo makes it go, nut show nothing because it aint redable by humans
echo "<pre>";
print_r($_FILES['file_upload']);
echo "</pre>";
echo "<hr/>";


?>


<!DOCTYPE html>

<html lang="en">
<head>
<meta charset="utf-8" />
<title> Upload </title>
</head>
<body>


<?php if(!empty($message)){echo "<p>{$message}</p>";} //A means to pass messages to the the user about the from processing?>
<form action="upload.php" enctype="multipart/form-data" method="POST">

<input type="hidden" name="MAX_FILE_SIZE" value="100000000"/>

<input type="file" name="file_upload"/>

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

</form>





</body>
</html> [/ code]
Salut,

Les erreurs retournées proviennent, effectivement, du fait que la variable $_FILES['file_upload'] n'est pas définie. Utilise la fonction isset () pour effectuer une telle vérification.

Et ce n'est pas un problème dû au HTML.
Victor, Merci pour regarder mon code. Je ai essayé de vérifier se il est configuré comme ceci.

[= Php code]<?php

if(isset($_POST['file_upload']))
{
$upload_errors = array
(
UPLOAD_ERR_OK => "No Errors.",
UPLOAD_ERR_INI_SIZE => "Larger than upload_max_filesize.",
UPLOAD_ERR_FORM_SIZE => "Larger than form MAX_FILE_SIZE.",
UPLOAD_ERR_PARTIAL => "Partial upload.",
UPLOAD_ERR_NO_FILE => "No file.",
UPLOAD_ERR_NO_TMP_DIR => "No temporary directory",
UPLOAD_ERR_CANT_WRITE => "Can't write to disk",
UPLOAD_ERR_EXTENSION => "File upload stopped by extension."
);


$error = $_FILES['file_upload']['error'];//Notice: Undefined index: file_upload
$message = $upload_errors[$error];


echo "<pre>";
print_r($_FILES['file_upload']);//Notice: Undefined index: file_upload
echo "</pre>";
echo "<hr/>";
}

?>


<!DOCTYPE html>

<html lang="en">
<head>
<meta charset="utf-8" />
<title> Upload </title>
</head>
<body>


<?php if(!empty($message)){echo "<p>{$message}</p>";}?>
<form action="upload.php" enctype="multipart/form-data" method="POST">

<input type="hidden" name="MAX_FILE_SIZE" value="100000000"/>

<input type="file" name="file_upload"/>

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

</form>
</body>
</html> [/ code]


Il a supprimé l'erreur, mais il ne semble pas pour traiter la forme ou même la sortie du tableau associatif que je ai demandé pour. Ce était comme la toute php-dessus <! DOCTYPE html> ont été retirés. La page se ouvre juste avec seulement choisir le fichier et le téléchargement des boutons, et quand je essaie de télécharger, il refuse, en me disant "Pas de fichier choisi". Même chose arrive avec if(isset($_POST['file_upload'])){....My php code here..}. Est-ce parce que la page soumet à lui-même? Ou tout le traitement de la forme est sur une page ?? Merci
Merci Victor. Vous avez été beaucoup trop gentil. Je ai craqué. Un collègue aîné m'a conseillé d'exécuter le test de isset après le tableau de upload_errors $ et non avant. Je ai enlevé les balises <pre> que je ai utilisé en inspectant les fichiers téléchargés et plus tard a décidé de ne exécuter le test sur 'file_upload'. Au lieu de cela je ai vérifié si la variable $ _POST été subumitted. comme ça

[PHP]if(isset($_POST['submit']))
{..my form processing code here..}
[/PHP]

Il a travaillé. Je me rendis donc de déplacer le fichier téléchargé dans un répertoire plus permanent avec le nom original (basename) et de donner un message de message de réussite ou d'erreur utilisant que $ upload_errors tableau. Le problème n'a jamais été «file_uploads». Je ai collé le code complet ci-dessous.




<?php
    
   
$upload_errors = array(

	UPLOAD_ERR_OK 			=> "No errors.",
	UPLOAD_ERR_INI_SIZE  	=> "Larger than upload_max_filesize.",
  UPLOAD_ERR_FORM_SIZE  	=> "Larger than form MAX_FILE_SIZE.",
  UPLOAD_ERR_PARTIAL 		=> "Partial upload.",
  UPLOAD_ERR_NO_FILE 		=> "No file.",
  UPLOAD_ERR_NO_TMP_DIR     => "No temporary directory.",
  UPLOAD_ERR_CANT_WRITE     => "Can't write to disk.",
  UPLOAD_ERR_EXTENSION 	    => "File upload stopped by extension."
);

    if(isset($_POST['submit']))
        {
	
	$tmp_file = $_FILES['file_upload']['tmp_name'];
	$target_file = basename($_FILES['file_upload']['name']); 
                                                    
  
	$upload_dir = "uploads";


	    if(move_uploaded_file($tmp_file, $upload_dir."/".$target_file)) 
            {
		        $message = "File uploaded successfully.";
	        } 
        else 
            {
		        $error = $_FILES['file_upload']['error'];
		        $message = $upload_errors[$error];
	        }
	
        }
            	

?>
<html>
	<head>
		<title>Upload</title>
	</head>
	<body>
	

		<?php if(!empty($message)) { echo "<p>{$message}</p>"; } ?>
		<form action="upload.php" enctype="multipart/form-data" method="POST">

		  <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
		  <input type="file" name="file_upload" />

		  <input type="submit" name="submit" value="Upload" />
		</form>
	
	</body>
</html>




Merci. Je apprécie. Je ai beaucoup appris au cours de ce processus de débogage. Je espère que cela aide quelqu'un qui a un piège semblable à l'avenir. Gracias.