PDA

Voir la version complète : $HTTP_POST_FILES, un pt coup de main, plz :p


nonno13
01/05/2007, 12h48
Bonjour,

J'ai un formulaire PHP qui permet au utilisateur de poster des recettes de cuisines sur mon site.
Je voudrai qu'ils puissent uploader une image de leur recette.
J'utilise donc dans le formulaire un champ :
<input type="file" name="image">
Et dans mon script PHP de traitement du formulaire je recupere l'info comme ca :
$fname = $HTTP_POST_FILES['image']['name'];
$ftype = $HTTP_POST_FILES['image']['type'];
$fsize = $HTTP_POST_FILES['image']['size'];

Mais si je fais un ECHO de $fname, rien ne sort.
ET mon script qui sert a monter sur le serveur le fichier ne marche pas.
Le voici :
--------------
////////////////////
// Upload de l'image
// Taille maximum
$MAX_FILE_SIZE = 150000;
// Dossier de destination du fichier
$folder = "./imgRecettes/";
// Tableau array des différents types
$allowed_types = array("image/bmp", "image/gif", "image/pjpeg", "image/jpeg", "image/jpg", "multipart/x-zip", "video/msvideo");
// Variables récupérée par methode POST du formulaires
$fname = $HTTP_POST_FILES['image']['name'];

echo "<br>$fname";

$ftype = $HTTP_POST_FILES['image']['type'];
$fsize = $HTTP_POST_FILES['image']['size'];
$ftmp = $HTTP_POST_FILES['image']['tmp_name'];
// Diverses test afin de savoir si :
// Le format de fichier correspond à notre tableau array
if(!in_array($ftype, $allowed_types)){$error = 1;}
// La taille du fichier n'est pas dépassée
if($fize > $MAX_FILE_SIZE){$error = 2;}
// Le fichier n'existe pas déjà
if(file_exists($folder."m_".$fname)){$error = 3;}
// Si tout va bien, c'est bien déroulé
if(copy($ftmp,''.$folder.''.$fname.'')) {$error = 0;}
// Switch servant simplement à la gestion des erreures
switch($error){
case'0':
echo("Fichero corectamente enviado.<br>");
break;
case'1':
echo("Formato del fichero incorecto.<br>");
break;
case'2':
echo("Fichero demaciado gordo.<br>");
break;
case'3':
echo("Fichero ya existe.<br>");
break;
}
-----------------------------------

Quelqu'un a une idée de pourquoi ?
OVHacceptent ils les upload de fichier ?

Merci d'avance

arnaud:p :p

nonno13
01/05/2007, 13h06
Bon désolé de vous avoir embété avec ca.
En fait le probleme venait de mon form, j'avais oublié

nonno13
01/05/2007, 13h07
que pour monter des fichier il faut que le form soit comme ca :
<form name="name" enctype='multipart/form-data' action="action" method="post">

Le enctype est obligatoire.

Merci de toute facon, ;)

Narayane
28/05/2007, 17h47
Juste une petite question, même si tu as résolu ton problème ;)
Pourquoi utilises-tu
$HTTP_POST_FILES
Plutôt que
$_FILES

Il est plutôt conseillé d'utiliser $_FILES, pour différentes raisons, décrites ici:
http://fr.php.net/manual/fr/security.globals.php

En plus c'est plus court à écrire ;)

nonno13
01/06/2007, 14h01
Ok, merci bien pour l'info, effectivement ca sera mieu.

Arnaud