Php recuperer post input file

Résolu
canardwifi -  
jambondardennes Messages postés 482 Date d'inscription   Statut Membre Dernière intervention   -
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

canardwifi
 
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   Statut Membre Dernière intervention   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
canardwifi
 
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 482 Date d'inscription   Statut Membre Dernière intervention   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

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

Posez votre question
Ozimandias Messages postés 505 Date d'inscription   Statut Membre Dernière intervention   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
canardwifi
 
le fichier que j essaye d ajouter est un .jpg j ai esaye avec d'autre extensions autorisés mais pareil...
0
canardwifi
 
oui la casse est bien respecté ...
0
jambondardennes Messages postés 482 Date d'inscription   Statut Membre Dernière intervention   39
 
Enlèves les points dans la ligne des extensions acceptées voir
0
canardwifi
 
la même chose a s en tirer les cheveux ...
0
jambondardennes Messages postés 482 Date d'inscription   Statut Membre Dernière intervention   39
 
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   Statut Membre Dernière intervention   46
 
ça ça marche... c'est ailleurs que se trouve le problème
0
canardwifi
 
ah la ca passe j ai un "echec de l'upload" mais plus de probleme d'extension ...
0
jambondardennes Messages postés 482 Date d'inscription   Statut Membre Dernière intervention   39
 
fais un simple echo sur $extension voir ce qu'il affiche.
0
jambondardennes Messages postés 482 Date d'inscription   Statut Membre Dernière intervention   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
canardwifi
 
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 482 Date d'inscription   Statut Membre Dernière intervention   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
jambondardennes Messages postés 482 Date d'inscription   Statut Membre Dernière intervention   39
 
oufffff ! HAHAHA comme quoi je suis pas le seul à devoir farfouiller mes codes ;)
0