Integrer le nom d'un fichier ds une bd

cs_zakichane Messages postés 44 Date d'inscription jeudi 23 juin 2005 Statut Membre Dernière intervention 30 novembre 2005 - 26 juil. 2005 à 14:22
cs_zakichane Messages postés 44 Date d'inscription jeudi 23 juin 2005 Statut Membre Dernière intervention 30 novembre 2005 - 26 juil. 2005 à 16:55
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

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 juil. 2005 à 14:25
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.
0
cs_zakichane Messages postés 44 Date d'inscription jeudi 23 juin 2005 Statut Membre Dernière intervention 30 novembre 2005
26 juil. 2005 à 14:34
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
0
morpheus262 Messages postés 461 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 16 février 2012
26 juil. 2005 à 14:36
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>
0
morpheus262 Messages postés 461 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 16 février 2012
26 juil. 2005 à 14:38
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>
0

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

Posez votre question
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
26 juil. 2005 à 14:39
et tu recuperes a chaque fois le nom avec $_FILES['userfile']['name']
0
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
26 juil. 2005 à 14:50
morpheus => ca veut dire quoi "s'inscrive entierement" ? Tu veux que ca ecrive %20, c'est ca? urlencode... et tu recuperes avec urldecode
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 juil. 2005 à 15:01
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...?
0
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
26 juil. 2005 à 15:07
C'est quoi une sous-table ? Tu confonds peut etre les termes base de donnees et table...
0
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
26 juil. 2005 à 15:08
Hehe, je viens de mettre un post au mauvais endroit! C'est ca d'avoir 15 fenetres ouvertes en meme temps... oops!
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 juil. 2005 à 15:08
Malik => hop, un post trop haut la ;-)
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 juil. 2005 à 15:08
Par contre t rapide!! pfffiou lol
0
morpheus262 Messages postés 461 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 16 février 2012
26 juil. 2005 à 16:05
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>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 juil. 2005 à 16:10
Hmmm...



tu recuperes comment ton nom de fichier ? Fais voir cette portion de code, j'ai une bonne idee de la raison lol.
0
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
26 juil. 2005 à 16:18
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 ''
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 juil. 2005 à 16:34
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).
0
cs_zakichane Messages postés 44 Date d'inscription jeudi 23 juin 2005 Statut Membre Dernière intervention 30 novembre 2005
26 juil. 2005 à 16:44
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
0
cs_zakichane Messages postés 44 Date d'inscription jeudi 23 juin 2005 Statut Membre Dernière intervention 30 novembre 2005
26 juil. 2005 à 16:55
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')");
0
Rejoignez-nous