Integrer le nom d'un fichier ds une bd

Signaler
Messages postés
44
Date d'inscription
jeudi 23 juin 2005
Statut
Membre
Dernière intervention
30 novembre 2005
-
Messages postés
44
Date d'inscription
jeudi 23 juin 2005
Statut
Membre
Dernière intervention
30 novembre 2005
-
Bonjour je suis encor debutant et j'ai un petit probleme c ke j"arrive pas a telechatger plusieur fichier ds un dossier et inserer seulement leur nom ds la bd mysql puis je avoir de l'aide svp

17 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Hello,



essaye de t'expliquer un peu mieux parce que je n'ai pas tout a fait pige (a moins que qqu'un d'autre ne te comprenne mieux).



En attendant :

http://de3.php.net/features.file-upload

je pense que tu trouveras tes reponses la.
Messages postés
44
Date d'inscription
jeudi 23 juin 2005
Statut
Membre
Dernière intervention
30 novembre 2005

puis que je sui debutant j'ai pas pu bien comprendre ce ke veullent dire ds ce lien ke tu ma donner
je vai essayer de mieu m'expliquer
je veu créer une page qui permet d'afficher 2 image d'un même produi et son commentaire en même ligne comme ça je vai avoir un tableau et ds chaque ligne tu va trouver un produi
et pour faire sela j'ai decidé de fair une bd my sql qui comprenne id, img01, img02, comment jusqua la tt va bien
mais je sai pas comment telecharger plusieur fichier en même temp et stoquer juste le nom du fichier ds la base de donnée comme ça je vai bien les afficher et les organisé j'espère ke j'ai expliqué un peu. et merci pour votre reponce
Messages postés
461
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 février 2012

Oui a mon avis son probleme vien du faite de recuperer le nom de ses fichier et de les inserer.

Euh malalam je te sens bien en forme aujourd hui lol tu as une astuce pour que si le nom du fichier comporte un espace (satané windows) celui ci s inscrive entierement dans la bdd, j ai fait des str_replace mais ca marche pas top alors pour le momentn je renome les fichier avec l id en general mais je pars le nom du fichier ce qui peux parfois etre genant.


<HR>
Loi du plagiat industriel de Felson : <CITE>Voler les idées d'une personne, c'est du plagiat. En voler à plusieurs, c'est de la recherche.</CITE>
Messages postés
461
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 février 2012

Pour telecharger tu fait ta fonction d upload que tu appel deux fois et tu obtien deux nom de fichier a mettre dans ta base


<HR>
Loi du plagiat industriel de Felson : <CITE>Voler les idées d'une personne, c'est du plagiat. En voler à plusieurs, c'est de la recherche.</CITE>
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
14
et tu recuperes a chaque fois le nom avec $_FILES['userfile']['name']
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
14
morpheus => ca veut dire quoi "s'inscrive entierement" ? Tu veux que ca ecrive %20, c'est ca? urlencode... et tu recuperes avec urldecode
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Morph => c#est pas que je suis en forme, c#est que je n'ai rien a faire, mais alors RIEN, a mon taf, la, lol...



Sinon pour ta question, pas mieux que Malik.

Enfin si peut-etre... : pourquoi les espaces te posent ils un probleme, au juste...?
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
14
C'est quoi une sous-table ? Tu confonds peut etre les termes base de donnees et table...
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
14
Hehe, je viens de mettre un post au mauvais endroit! C'est ca d'avoir 15 fenetres ouvertes en meme temps... oops!
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Malik => hop, un post trop haut la ;-)
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Par contre t rapide!! pfffiou lol
Messages postés
461
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 février 2012

Re,





Pour les espaces c simple si mon fichier s appel mon fichier.jpg ben dans ma base j ai comme nom: mon et donc ca fait planter l affichage forcement.





J essayerai le urlencode et urldecode.




<HR>



Loi du plagiat industriel de Felson : <CITE>Voler les idées d'une personne, c'est du plagiat. En voler à plusieurs, c'est de la recherche.</CITE>
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Hmmm...



tu recuperes comment ton nom de fichier ? Fais voir cette portion de code, j'ai une bonne idee de la raison lol.
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
14
ca m'intéresse là... j'ai fait un essai, mais ca pose pas de prob chez
moi d'avoir un nom prout schmurz... mais c'est peut-etre que je passe
par une bd et que j'insere en utilisant de ''
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
A mon avis :



soit il passe ca d'une page vers une autre avant insertion, par GET. Dans ce cas, oui, url_encode.

Soit ca se trouve dans un champ quelconque d'un formulaire, et c#est
recupere de la, et dans ce cas il y a sans doute un probleme tout bete
de quote pour la valeur du champ.



Enfin, autre possibilite : le type du champ de la bdd n#est pas assez grand (chais pas moi, varchar 5 par exemple lol).
Messages postés
44
Date d'inscription
jeudi 23 juin 2005
Statut
Membre
Dernière intervention
30 novembre 2005

les gas j'ai eu mon code sous forme suivant:

<?php
mysql_connect("localhost","root","password");
mysql_select_db("z3");

if(isset($_FILES['img01']))
{
unset($erreur);
$extensions_ok = array('GIF', 'gif', 'jpg', 'jpeg', 'JPG', 'JPEG');
$taille_max = 500000;
$dest_dossier = 'img/';
// utilisez également des slashes sous windows : $dest_dossier = 'd:/damien/photos/';
// vérifications
if( !in_array( substr(strrchr($_FILES['img01']['name'], '.'), 1), $extensions_ok) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
echo($erreur);
}
elseif( file_exists($_FILES['img01']['tmp_name'])
and filesize($_FILES['img01']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
echo($erreur);
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['img01']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['img01']['tmp_name'], $dest_dossier.$dest_fichier);
//insertion des images au bd
$img = "img/$dest_fichier";
$fp = fopen($img,"r");
$data = fread($fp,filesize($img));
fclose($fp);
$data = addslashes($data);
$name1 = $_FILES['img01']['name'];
mysql_query("INSERT INTO test (img01) VALUES ('$name1')");
//echo('La photo été bien téléchargé');
}
//else{
//echo($erreur);
//}
}

if(isset($_FILES['img02']))
{
unset($erreur);
$extensions_ok = array('GIF', 'gif', 'jpg', 'jpeg', 'JPG', 'JPEG');
$taille_max = 500000;
$dest_dossier = 'img02/';
// utilisez également des slashes sous windows : $dest_dossier = 'd:/damien/photos/';
// vérifications
if( !in_array( substr(strrchr($_FILES['img02']['name'], '.'), 1), $extensions_ok) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
echo($erreur);
}
elseif( file_exists($_FILES['img02']['tmp_name'])
and filesize($_FILES['img02']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
echo($erreur);
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['img02']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['img02']['tmp_name'], $dest_dossier.$dest_fichier);
//insertion des images au bd
$img = "img02/$dest_fichier";
$fp = fopen($img,"r");
$data = fread($fp,filesize($img));
fclose($fp);
$data = addslashes($data);
$name2 = $_FILES['img02']['name'];
mysql_query("INSERT INTO test (img02) VALUES ('$name2')");
echo('La photo été bien téléchargé');
}
//else{
//echo($erreur);
//}
}

?>

ça marche très bien il telecharge les image et il met leur nom ds la base de donnée mais le probleme c ke le nom de img01 ce met de img01 et le img02 se met ds img02 mais ds un autre enregistrement ça veux dir ils auront un id differant je croi ke j'ai un probleme ds la requet d'insertion
Messages postés
44
Date d'inscription
jeudi 23 juin 2005
Statut
Membre
Dernière intervention
30 novembre 2005

ok les gas j'ai trouvé la solution il fau enlevé la 1er requet et la 2eme sera
mysql_query("INSERT INTO test (img01,img02) VALUES ('$name1','$name2')");