Php recuperer post input file

Résolu/Fermé
Signaler
-
Messages postés
481
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
6 septembre 2017
-
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

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
Messages postés
502
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
10 mars 2010
46
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
Messages postés
481
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
6 septembre 2017
39
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
Messages postés
502
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
10 mars 2010
46
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
Messages postés
481
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
6 septembre 2017
39
Enlèves les points dans la ligne des extensions acceptées voir
0
la même chose a s en tirer les cheveux ...
0
Messages postés
481
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
6 septembre 2017
39
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau

Modifies cette ligne et fais :
if ($extension==".jpg")
0
Messages postés
502
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
10 mars 2010
46
ç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
Messages postés
481
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
6 septembre 2017
39
fais un simple echo sur $extension voir ce qu'il affiche.
0
Messages postés
481
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
6 septembre 2017
39
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
Messages postés
481
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
6 septembre 2017
39
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
Messages postés
481
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
6 septembre 2017
39
oufffff ! HAHAHA comme quoi je suis pas le seul à devoir farfouiller mes codes ;)
0