C'est avec joie que je vous retrouve sur phpfrance ;=)
qq'un pourrait me donner un script pour faire un upload de fichier , svp , merci ! (cours aussi si vous avez...merci
P'tit coucou à Cyrano au passage
il le me met ou le fichier en fait ?Il faut également spécifier la valeur multipart/form-data dans le type d'encodage des données du formulaire (enctype).
$dest_dossier = '/photos';
je le retrouve dans le c:\ ?
ça veut dire ça :C'est écrit ceci dans ton exemple , à quoi ça correspond ?
Il faut également spécifier la valeur multipart/form-data dans le type d'encodage des données du formulaire (enctype).
#
<form method="POST" action="notre_script.php" enctype="multipart/form-data">
<?php
// initialisation de la variable du message
$message="";
//traitement du formulaire
//récupérer les informations sur le fichier
if (isset($_post["ok"])) {
$informations =$_files["fichier"];
//en extraire
// - son nom
$nom=valeur_saisie($informations["name"]);
// - son type Mime
$type_mime =$informations["type"];
// sa taille
$taille=$informations["size"];
// emplacement du fichier temporaire
$fichier_temporaire=$informations["tmp_name"];
// code d'erreur
$code_erreur=$informations["error"];
//contrôles et traitement
switch ($code_erreur){
case UPLOAD_ERR_OK :
//fichier bien reçu
//déterminer sa destination finale
$destination="e:/temp/$nom";
//copier le fichier temporaire
if (copy($fichier_temporaire,$destination)){
//copie OK =>mettre un message de ocnfirmation
$message ="Transfert terminé - fichier=$nom";
$message .="Taille= $taille octets";
$message .= "Type MIME =$type_mime.";
} else {
//problème de copie =>mettre un message d'erreur
$message= "problème de copie sur le serveur.";
}
break;
case UPLOAD_ERR_NO_FILE :
//pas de fichier saisi
$message = "pas de fichier saisi";
break;
case UPLOAD_ERR_INI_SIZE :
//taille fichier > upload_max_filesize
$message="Fichier '$nom' non transféré";
$message .= "(taille > MAX_FILE_SIZE).";
break;
case UPLOAD_ERR_PARTIAL :
//fichier partiellement transféré
$message = "Fichier '$nom' non transféré";
$message .= " (problème lors du transfert).";
case 5 :
//fichier partiellement transféré
$message ="Fichier '$nom' non transféré";
$message .= "(non trouvé).";
break;
default :
//erreur non prévue !
$message = "fichier non transféré";
$message .= "(erreur inconnue : $code_erreur).";
}
}
?>
<html>
<head><title>saisie</title></head>
<body>
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="10240">
fichier: <input type="file" name="fichier"><br>
<input type="submit" name="ok" value="ok">
</form>
</body>
</html>
Il ne se passe rien.
<?php
// initialisation de la variable du message
$message="";
//traitement du formulaire
//récupérer les informations sur le fichier
if (isset($_post["ok"])) {
$informations =$_files["fichier"];
//en extraire
// - son nom
$nom=valeur_saisie($informations["name"]);
// - son type Mime
$type_mime =$informations["type"];
// sa taille
$taille=$informations["size"];
// emplacement du fichier temporaire
$fichier_temporaire=$informations["tmp_name"];
// code d'erreur
$code_erreur=$informations["error"];
//contrôles et traitement
switch ($code_erreur){
case UPLOAD_ERR_OK :
//fichier bien reçu
//déterminer sa destination finale
$destination="e:/temp/$nom";
//copier le fichier temporaire
if (copy($fichier_temporaire,$destination)){
//copie OK =>mettre un message de ocnfirmation
$message ="Transfert terminé - fichier=$nom";
$message .="Taille= $taille octets";
$message .= "Type MIME =$type_mime.";
} else {
//problème de copie =>mettre un message d'erreur
$message= "problème de copie sur le serveur.";
}
break;
case UPLOAD_ERR_NO_FILE :
//pas de fichier saisi
$message = "pas de fichier saisi";
break;
case UPLOAD_ERR_INI_SIZE :
//taille fichier > upload_max_filesize
$message="Fichier '$nom' non transféré";
$message .= "(taille > MAX_FILE_SIZE).";
break;
case UPLOAD_ERR_PARTIAL :
//fichier partiellement transféré
$message = "Fichier '$nom' non transféré";
$message .= " (problème lors du transfert).";
case 5 :
//fichier partiellement transféré
$message ="Fichier '$nom' non transféré";
$message .= "(non trouvé).";
break;
default :
//erreur non prévue !
$message = "fichier non transféré";
$message .= "(erreur inconnue : $code_erreur).";
}
}
?>
<html>
<head><title>saisie</title></head>
<body>
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="10240">
fichier: <input type="file" name="fichier"><br>
<input type="submit" name="ok" value="ok">
</form>
</body>
</html>
quand je valide sur ok le traitement ne fonctionne pas...
<?php
// initialisation de la variable du message
$message="";
//traitement du formulaire
//récupérer les informations sur le fichier
if (isset($_post["ok"])) {
$informations =$_files["fichier"];
//en extraire
// - son nom
$nom=valeur_saisie($informations["name"]);
// - son type Mime
$type_mime =$informations["type"];
// sa taille
$taille=$informations["size"];
// emplacement du fichier temporaire
$fichier_temporaire=$informations["tmp_name"];
// code d'erreur
$code_erreur=$informations["error"];
//contrôles et traitement
switch ($code_erreur){
case UPLOAD_ERR_OK :
//fichier bien reçu
//déterminer sa destination finale
$destination="e:/temp/$nom";
//copier le fichier temporaire
if (copy($fichier_temporaire,$destination)){
//copie OK =>mettre un message de ocnfirmation
$message ="Transfert terminé - fichier=$nom";
$message .="Taille= $taille octets";
$message .= "Type MIME =$type_mime.";
} else {
//problème de copie =>mettre un message d'erreur
$message= "problème de copie sur le serveur.";
}
break;
case UPLOAD_ERR_NO_FILE :
//pas de fichier saisi
$message = "pas de fichier saisi";
break;
case UPLOAD_ERR_INI_SIZE :
//taille fichier > upload_max_filesize
$message="Fichier '$nom' non transféré";
$message .= "(taille > MAX_FILE_SIZE).";
break;
case UPLOAD_ERR_PARTIAL :
//fichier partiellement transféré
$message = "Fichier '$nom' non transféré";
$message .= " (problème lors du transfert).";
// <------------------------------------------------------ manque un break ici
case 5 :
//fichier partiellement transféré
$message ="Fichier '$nom' non transféré";
$message .= "(non trouvé).";
break;
default :
//erreur non prévue !
$message = "fichier non transféré";
$message .= "(erreur inconnue : $code_erreur).";
}
}
?>
Tu offres la possibilité de stocker tout un tas de messages d'erreur, mais tu ne les affiche pas. Ca aiderait pourtant non ? <?php
// initialisation de la variable du message
$message="";
//traitement du formulaire
//récupérer les informations sur le fichier
if (isset($_POST["ok"]))
{
$informations =$_FILES["fichier"];
//en extraire
// - son nom
$nom=valeur_saisie($informations["name"]);
// - son type Mime
$type_mime =$informations["type"];
// sa taille
$taille=$informations["size"];
// emplacement du fichier temporaire
$fichier_temporaire=$informations["tmp_name"];
// code d'erreur
$code_erreur=$informations["error"];
//contrôles et traitement
switch ($code_erreur)
{
case UPLOAD_ERR_OK :
//fichier bien reçu
//déterminer sa destination finale
$destination="e:/temp/$nom";
//copier le fichier temporaire
if (copy($fichier_temporaire,$destination))
{
//copie OK =>mettre un message de ocnfirmation
$message ="Transfert terminé - fichier=$nom";
$message .="Taille= $taille octets";
$message .= "Type MIME =$type_mime.";
}
else
{
//problème de copie =>mettre un message d'erreur
$message= "problème de copie sur le serveur.";
}
break;
case UPLOAD_ERR_NO_FILE :
//pas de fichier saisi
$message = "pas de fichier saisi";
break;
case UPLOAD_ERR_INI_SIZE :
//taille fichier > upload_max_filesize
$message="Fichier '$nom' non transféré";
$message .= "(taille > MAX_FILE_SIZE).";
break;
case UPLOAD_ERR_PARTIAL :
//fichier partiellement transféré
$message = "Fichier '$nom' non transféré";
$message .= " (problème lors du transfert).";
case 5 :
//fichier partiellement transféré
$message ="Fichier '$nom' non transféré";
$message .= "(non trouvé).";
break;
default :
//erreur non prévue !
$message = "fichier non transféré";
$message .= "(erreur inconnue : $code_erreur).";
}
}
?>
<html>
<head>
<title>saisie</title>
</head>
<body>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="10240">
fichier: <input type="file" name="fichier"><br>
<input type="submit" name="ok" value="ok">
</form>
</body>
</html>
Ce que je ne comprends pas, c'Est pourquoi tu initialises une variable $information au lieu d'utiliser directement $_FILES ... $message="";
la ligne 11 :
$nom=valeur_saisie($informations["name"]);
ligne qui m'affiche une erreur comme function undefined