Php recuperer post input file

Résolu/Fermé
canardwifi - 17 juil. 2009 à 10:57
jambondardennes Messages postés 481 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 6 septembre 2017 - 17 juil. 2009 à 14:43
Bonjour,
j ai dans mon script php un champ input file pour joindre un fichier que je souhaite insérer dans ma base de données

il s'agit de fichier image

<form enctype="multipart/form-data" action="import.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="60000" />
Image : <input name="file_send" type="file" />
<input type="submit" value="Envoyer" />
</form>


1) quel doit être la structure de mon champ upload_image (char , ...) dans ma table
2) comment récupérer le POST "file_send"

je sais que pour un valeur texte c'est du genre if(isset($_POST['nom'])) ... la je ne vois pas

Merci de votre aide
A voir également:

16 réponses

Problème résolu !!! et ça venait de mon input le type et le name avait la même valeur "file" j'ai modifié ça et ça fonctionne.

Merci a tous et en particulier à jambondardennes pour ses efforts
1
Ozimandias Messages postés 505 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 10 mars 2010 46
17 juil. 2009 à 11:31
Pour récupérer des fichier uploadés, il faut utiliser $_FILES.

Petite explication ici:
http://www.commentcamarche.net/faq/sujet 889 php upload de fichiers
0
Merci pour la réponse j ai utilisé ce script mais il me bloque au nivau des extensions même les bonnes je ne comprends pas merci

le message d'erreur :

Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...

Le script :

$dossier = 'upload/';
$fichier = basename($_FILES['file']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['file']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['file']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['file']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
?>
0
jambondardennes Messages postés 481 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 6 septembre 2017 39
17 juil. 2009 à 12:02
S'il te bloque c'est à cette ligne surement :
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
Vérifies que le fichier en question porte les extensions suivantes : .png, .gif, .jpg ou .jpeg
Si tu as besoin d'accepter d'autres extensions il te suffit de les rajouter dans la liste :
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.nouvelleextension');
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ozimandias Messages postés 505 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 10 mars 2010 46
17 juil. 2009 à 12:05
Cette partie du code fonctionne très bien. As tu pensé à vérifier la casse de l'extension car si ton fichier s'apelle .JPG ça ne fonctionne pas...
0
le fichier que j essaye d ajouter est un .jpg j ai esaye avec d'autre extensions autorisés mais pareil...
0
oui la casse est bien respecté ...
0
jambondardennes Messages postés 481 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 6 septembre 2017 39
17 juil. 2009 à 12:10
Enlèves les points dans la ligne des extensions acceptées voir
0
la même chose a s en tirer les cheveux ...
0
jambondardennes Messages postés 481 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 6 septembre 2017 39
17 juil. 2009 à 12:18
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau

Modifies cette ligne et fais :
if ($extension==".jpg")
0
Ozimandias Messages postés 505 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 10 mars 2010 46
17 juil. 2009 à 12:19
ça ça marche... c'est ailleurs que se trouve le problème
0
ah la ca passe j ai un "echec de l'upload" mais plus de probleme d'extension ...
0
jambondardennes Messages postés 481 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 6 septembre 2017 39
17 juil. 2009 à 12:27
fais un simple echo sur $extension voir ce qu'il affiche.
0
jambondardennes Messages postés 481 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 6 septembre 2017 39
17 juil. 2009 à 12:37
l'echec de l'upload doit venir du fait que soit tu n'as pas de dossier upload pour qu'il mette le fichier dedans, soit que le dossier upload n'est pas à l'endroit que tu indiques.
0
quand je mets un echo devant extension voila le resultat

ArrayVous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...

merci de votre aide
0
jambondardennes Messages postés 481 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 6 septembre 2017 39
17 juil. 2009 à 14:14
Donc le problème vient du tableau vu que tu as array.

Au lieu de $extension = strrchr($_FILES['file']['name'], '.');

essaies $extension[] = strrchr($_FILES['file']['name'], '.');
0
jambondardennes Messages postés 481 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 6 septembre 2017 39
17 juil. 2009 à 14:43
oufffff ! HAHAHA comme quoi je suis pas le seul à devoir farfouiller mes codes ;)
0