8791 sujets

Développement web côté serveur, CMS

Modérateur
Salut,

J'ai fait un petit script pour transférer des fichiers. Malheureusement, cela ne fonctionne pas vraiment. Ai je oublier des instructions ?

Merci par avance.
++


<!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>Document sans titre</title>
</head>

<body>

<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
<p><input type="file" name="fichier" size="40" /><input type="submit" value="envoyer" /></p>
</form>
<?php
$fichier=$_FILES['fichier']['name'];
$taille=$_FILES['fichier']['size'];
$temp=$_FILES['fichier']['tmp_name'];
$type=$_FILES['fichier']['type'];
$erreur=$_FILES['fichier']['error'];

echo "Nom d'origine => $fichier <br />";
echo "Taille => $taille <br />";
echo "Adresse temporaire => $temp <br />";
echo "Type de fichier => $type <br />";
echo "Code erreur => $erreur <br />";

$destination="fichier/$fichier";
echo $destination;
move_uploaded_file($fichier,$destination);


?>

	  
	   
</body>
</html>


Modifié par Nolem (16 Mar 2008 - 16:14)
Lut,

ne devrais tu pas "mover" plutot le fichier temporaire car c'est lui qui est sur ta machine.

move_uploaded_file($temp,$destination);



pascal
Modifié par CPascal (11 Mar 2008 - 20:24)
+1

Et en passant ce serait quand même + mieux de tester d'abord si le formulaire a été posté avant de faire tout ça Smiley langue !

Par exemple avec :
<?php
if(strlen($_FILES['fichier']['name'])) {
...
}
?>
Modérateur
Salut,

Merci Pascal, ça marche nickel Smiley smile . Je n'avais pas réfléchi qu'il est évident que ce soit le fichier temporaire qui doit être transféré.

Heyoan :

Peux tu m'en dire un peu plus svp ?

@+
Re',

ce que je veux dire c'est que si le formulaire n'a pas été soumis (ce qui est le cas au moins pour le premier affichage) plusieurs instructions PHP sont exécutées inutilement (alimentation de variables, echo et move_uploaded_file). Dans ton exemple ce n'est pas bien grave mais avec un code plus conséquent cela pourrait alourdir le temps d'affichage ou générer des warnings.

Et d'une manière générale, c'est toujours une bonne idée de vérifier l'existence et la provenance (post, get, cookies, etc...) des variables avant de les utiliser Smiley murf .

A+
Modérateur
Salut,

Je te remercie de ta précision que je trouve très utile pour la suite. Ce petit scipt est une petite pierre pour construire ultèrieurement un bel édifice.

Merci encore de votre aide Smiley smile

@+