php mysql avec photo

Le
cobra-expert
Bonjour, je voudrais savoir comment faire pour faire un formulaire avec
envoie et stockage de photo dans une base de donnée et comment les afichés,
un peux comme un site de e-commerce.

Grand merci
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
loquace
Le #572566
Bon c'est pas tres dur.

1-creer un fomulaire avec un ou plusieurs champs <input type="file">:

selectionnez les images a inserer :<br>
<input name="userfile1" type="file" />

2- tu recup l'image coté server en utilisant cela :

/**
*
* si le champs s'appelle userfile1 bien sur, j'ai créé ce test aucas ou le nom du fichier soit merdique et
* donc ne passe pas sur les serveur linux.C'est pour corriger le nom du fichier retourné par la superglobale
* $_FILES
*/

$fichier=$_FILES['userfile1']['name'];
$fichier=str_replace(" ","_",$fichier);
$fichier=str_replace("Ã","a",$fichier);
$fichier=str_replace("Ã","a",$fichier);
$fichier=str_replace("Ã","a",$fichier);
$fichier=str_replace("Ã","e",$fichier);
$fichier=str_replace("Ã","e",$fichier);
$fichier=str_replace("Ã","e",$fichier);
$fichier=str_replace("Ã","e",$fichier);
$fichier=str_replace("Ã","i",$fichier);
$fichier=str_replace("Ã","i",$fichier);
$fichier=str_replace("Ã","o",$fichier);
$fichier=str_replace("Ã","o",$fichier);
$fichier=str_replace("Ã","u",$fichier);
$fichier=str_replace("Ã","u",$fichier);
$fichier=str_replace("Ã","u",$fichier);
$fichier=str_replace("Ã","n",$fichier);
$fichier=str_replace("Ã","c",$fichier);
$newfile = $fichier;

/*
* on teste et deplace si l'upload s'est bien passé avec move_uploaded_file
* regarde les param de la fonction danq la doc sur wwww.php.net
*/
if (move_uploaded_file($_FILES['userfile1']['tmp_name'], "attribut/image/".$newfile)){

$imgpath = "attribut/image/".$newfile;
}

donc si dessus j'ai mis le fichier image dans le rep attribut/image/le nom de l'image
et le stoke dans $imgpath
Il te suffit de stocker le contenu de $imgpath dans un champ de table avec son id et l'id de la chose a laquelle l'image est rattachée.
En faisant une requete ensuite tu recup le path et l'affiche avec <img src="<?php echo $row['ton_path_stocké_dans_ta_base'];?>"/>

voila.
Guillaume Bouchard
Le #572314
loquace wrote:
Bon c'est pas tres dur.

1-creer un fomulaire avec un ou plusieurs champs <input type="file">:

selectionnez les images a inserer :<br>
<input name="userfile1" type="file" />


Tient, marrant, du XHTML avec un ENCTYPE en majuscule...

$fichier=$_FILES['userfile1']['name'];
$fichier=str_replace(" ","_",$fichier);


...
voici une fonction du style en condenser :

function clean($str){
# remplace la plus part des caracteres accentué auquel j'ai pensé.
$str =
strtr(strtolower($str),'àáâäãçéèêëìíîïòóoôõùúûü','aaaaceeeeiiiiooooouuuu');
# remplace les espace par des tiret
$str = str_replace(' ','-',$str);
# et au final, vire tout ce qui n'est pas a-z0-9 ou tiret
$str = preg_replace('`[^a-z0-9-]`','',$str);
return $str;
}

--
Guillaume.

loquace
Le #572029

Tient, marrant, du XHTML avec un ENCTYPE en majuscule...
Oui désolé j'ai fait un copié collé d'un truc pas xhtml,

ton strstr recherche pas l'intégralité
de la chaine? je pensais que strstr
recherchai fidelement la chaine passée en argument

$str = str_replace(' ','-',$str);


je remarque que tu a vraiment le sens de la contradiction a changer le _
par un -

ceci dit tu as raison de preciser qu'on peut toujours faire mieux.
On fait avec les neuronnes dispo.
a+
seb

Thibaut Allender
Le #571738


function clean($str){
# remplace la plus part des caracteres accentué auquel j'ai pensé.
$str =
strtr(strtolower($str),'àáâäãçéèêëìíîïòóoôõùúûü','aaaaceeeeiiiiooooouuuu');
# remplace les espace par des tiret
$str = str_replace(' ','-',$str);


moi j'aurais fait ca en une seule fois :
strtr(strtolower($str),'àáâäãçéèêëìíîïòóoôõùúûü
','aaaaceeeeiiiiooooouuuu-');

j'ai encore introduit un probleme de sécurité ? merde alors... ;)

--
thibaut allender | freelance | web|system developer|designer
+32 496 26 75 76 | http://capsule.org

John Gallet
Le #571740
$str = str_replace(' ','-',$str);


je remarque que tu a vraiment le sens de la contradiction a changer le _
par un -



C'est surtout un problème de génération windows... L'espace est un
séparateur d'instruction dans tous les langages de scripting (y compris le
DOS). Autrement dit quand windows prétend que ton fichier s'appelle "mon
beau fichier avec des espaces partout.doc" en fait son petit nom est
"mon~12334.doc" ou un truc du genre.
Si tu essaies de faire un fopen("nom avec espace.txt") sous unix, tu
pourrais avoir des surprises.

On fait avec les neuronnes dispo.
Ce n'est pas une question d'intelligence mais de connaissance des

OS/d'expérience. Si tu ne sais pas, tu ne peux pas y penser.

a++
JG


loquace
Le #574409
Mais moi je n'ai pas introduit d'espace dans mon replace,
je change l'espace par _ et non par -, ce que je disais c que notre ami a
l'esprit de contradiction pour aller changer mon _ en -
c'est tout :)

:)
Pour ce qui est de faire en une fois, c bien , mais en fait mon exemple
provient d'un dev sur un projet pas fini et j'aime bien voir tout les cas
et pour ce qu'il y a a traiter dans mon histoire, la perte de perf est pas
très importante

Pour ce qui est des espace oui c'est de la windows generation.
Je dev sous linux, et choix fait pour experience du dev
sous win. Je ne reviendrai pas en arrière(deja que je boote sous win pour
verif mes dev sous IE....)

Seb
cobra
Le #576118
Re bonjour,

je ne suis pas arrivé à faire ce truc la, donc si il y a quelqu'un qui
peux m'aider sa cerais cool... Voir article "php mysql photo"

merci
Jean-Marc Molina
Le #575821
Je ne reviendrai pas en arrière(deja que je boote sous win pour
verif mes dev sous IE....)


Tu pourrais essayer un « émulateur » Windows sous Linux. Il doit bien y en
avoir vu qu'il existe des Lindows et autres Virtual PC (Linux sous Windows
par exemple) :
http://directory.google.com/Top/Computers/Emulators/Intel_x86_Architecture/DOS_and_Windows/?il=1
http://www.zophar.net/pc.html

De nom je connais VMware, Virtual PC (le meilleur), Wine, Bochs
(http://www.psyon.org/bochs-win32/).

JM

Publicité
Poster une réponse
Anonyme