Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionJ'en ai marre de ces programeurs qui se sentent supérieurs aux autres
4. On demande une explication ou de l'aide sur un sujet précis, on ne l'exige pas!
9. On ne demande pas un programme tout fait, on ne demande que de l'aide sur un problème concret.
facturer 200 euros par jour (c'est tout, boaf, moi c'est 700)
5. On ne pose qu'une question par topic.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type" /> <title>Envoyer une image sur une bdd</title> </head> <?php //Connexion (remplacer les parametres de connexion) mysql_connect("mon_site.free.fr", "login", "mot_de_passe")or die(mysql_error()); mysql_select_db("test")or die(mysql_error()); //---------------------------------- //enregistrer une image sur la BDD //---------------------------------- // Pour vos essais créez une base de donnée nommée 'test' qui devra contenir 2 champs // 1er champ nommé 'numero' de type 'int' avec un 'auto_increment' coché // 2em champ nommé 'avatar' de type 'mediumblob' ou 'blob' if(!empty($_FILES['image']['size'])) //si on a posté un fichier { //récupère taille, nom , fichier temporaire $f1_size = $_FILES['image']['size']; $f1_name = $_FILES['image']['name']; $f1_tmpname =$_FILES['image']['tmp_name']; //Récupération extension fichier texte qui suit le dernier point converti minuscule $ext = strtolower(substr($f1_name,strrpos($f1_name, ".")+1)); //tableau des extensions acceptées, des images $valides = array("jpg","jpeg","png","gif"); //vérifie la taille et le type de fichier $taille_max = 25000; // par exemple 25ko if ($f1_size > $taille_max) { $infos = "fichier trop gros, maximum : " . ($taille_max/1000) ." ko "; } if (!in_array($ext,$valides)) { $infos .= "le fichier doit etre une image jpg, png, jpeg, gif "; } if($infos == '') // pas d'erreur enregistrée { //Lecture du fichier. utilise mysql_escape_string car donnees binaires contiennent des caracteres speciaux. $image = mysql_escape_string(file_get_contents($_FILES['image']['tmp_name'])); //inserer dans la bdd mysql_query("INSERT INTO test VALUES('','$image','')") or exit (mysql_error()); $infos .= 'Image sauvée dans la base de données '; } echo($infos); } //---------------------------------- // afficher une image particulière //---------------------------------- // vous devrez avoir créé une page nommée avatar.php (voir le code) sauvée dans le même repertoire que cette page, c'est ce fichier qui est votre image. $numero_image = $_POST['numero_image']; //numero de l'image particulière demandée if ($numero_image <> "") //si on a demandé une image particulière { // affiche juste le n° de l'image echo('image numero : ' . $numero_image . ' '); //affiche l'image via un lien de type echo(' '); } //---------------------------------- // afficher une image au hasard //---------------------------------- $hasard = $_POST['hasard']; if ($hasard <> "") //on a demandé une image au hasard { $retour = mysql_query('select count(*) from test')or die(mysql_error()); $donnees = mysql_fetch_row($retour); $nbr_entrees = $donnees[0]; $aleatoire = rand(0,$nbr_entrees-1); // nbr aleatoire compris entre 0 et $nbr_entrees-1 echo("position dans la table : " .$aleatoire . "---"); $retour = mysql_query("select * from test LIMIT " . $aleatoire . " , 1")or die(mysql_error()); //prend la ligne correspondante au n° aléatoire $donnees = mysql_fetch_array($retour); $numero_image = $donnees['numero']; // affiche juste le n° de l'image echo('image aléatoire numero : ' . $numero_image . ' '); //affiche l'image via un lien de type echo(' '); } mysql_close(); //fermeture bdd ?> <form enctype="multipart/form-data" action="http://mon_site.free.fr/dossier_divers/charger_image.php" method="post"> Sauver une image sur la base de donnee Voir une image particulière indiquez son numero Afficher une image au hasard oui </form> </html>
<?php $numero_image = $_GET["numero_image"]; //recupere le numero de l'image donnée dans le lien $connexion = mysql_connect("mon_site.free.fr", "login", "mot_de_passe") or exit (mysql_error()); $database = mysql_select_db("test") or exit (mysql_error()); $retour = mysql_query("SELECT * FROM test WHERE numero='$numero_image'") or die(mysql_error()); $donnee = mysql_fetch_array($retour); $image = $donnee['avatar']; mysql_close(); print $image; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type" /> <title>envoyer une image sur un fichier</title> </head> <form name="post_photo" method="post" action="http://mon_site.free.fr/dossier_divers/charger_image.php" enctype="multipart/form-data"> </form> <?php if(!empty($_FILES['photo1']['size'])) //méthode POST a envoyé un fichier { //récupère taille, nom , fichier temporaire $f1_size = $_FILES['photo1']['size']; $f1_name = $_FILES['photo1']['name']; $f1_tmpname =$_FILES['photo1']['tmp_name']; //Récupération extension fichier texte qui suit le dernier point converti minuscule) $ext = strtolower(substr($f1_name,strrpos($f1_name, ".")+1)); //tableau des extensions acceptées $valides = array("jpg","jpeg","png","gif"); //vérifie la taille et le type de fichier $taille_max = 25000; // par exemple 25ko if ($f1_size > $taille_max) {$infos = "erreur fichier trop gros, maximum : " . ($taille_max/1000) ." ko ";} //Verifiez bien pour ces codes testeurs trouvés sur le net que les fichiers "fausse-image-virus-hacker.jpeg.exe" sont bien filtrées, là ca marche, certains sont mal élaborés if (!in_array($ext,$valides)) {$infos .= "erreur le fichier doit etre une image jpg, png, jpeg, gif ";} //renomme le fichier uploadé $numero = rand(1,9999); // ici vous remplacez l'aléatoire par un compteur perso, c'est evidemment ici que vous mettez le numéro d'identifiant de la personne en relation avec son compte par exemple, son pseudo que sais-je ... $name=strtolower("image_avatar".$numero.".".$ext); if($infos == '') // pas d'erreur enregistrée { //if(!move_uploaded_file($f1_tmpname, "http://votre_site.free.fr/general/dossier/sous_dossier/".$name."")) //====> Pour certains serveurs, meme en indiquant un autre emplacement avec cette instruction, la photo sera enregistrée dans le dossier ou est stocké ce programme if(!move_uploaded_file($f1_tmpname, $name)) //merci nohar, avec ceci on evite toute erreur pour les hebergeur comme free, //move_uploaded_file() renvoie un BOOLEEN, True si ça a marché //False dans le cas contraire { $infos .= "erreur Impossible d'enregistrer la photo ".$name." "; } else {$infos .= "ok fichier enregistré ";} } echo ($infos); } ?> </html>
//vérifie la taille et le type de fichier $taille_max = 1000000; // par exemple 1000ko if ($f1_size > $taille_max)
$infos .= "ok fichier enregistré "; // -------------------------- // partie 'Redimentionnage' // -------------------------- // limitation de largeur et hauteur par exemple avatar pour un forum $largeur_max = 90; $hauteur_max = 100; // L'image est la source, on selectionne selon format if (($ext "jpg") or ($ext "jepg")) { $source = imagecreatefromjpeg($name); } if ($ext == "gif") { $source = imagecreatefromgif($name); } if ($ext == "png") { $source = imagecreatefrompng($name); } // Prend la largeur et la hauteur de l'image originale $largeur_source = imagesx($source); $hauteur_source = imagesy($source); //garde l'image en proportion et lui impose les limites max si elle depasse $rapport = $hauteur_source / $largeur_source; $largeur_finale = $largeur_source; $hauteur_finale = $hauteur_source; if (($largeur_finale > $largeur_max) or ($hauteur_finale > $hauteur_max)) { $largeur_finale = $largeur_max; $hauteur_finale = $largeur_finale * $rapport; if ($hauteur_finale > $hauteur_max) { $hauteur_finale = $hauteur_max; $largeur_finale = $hauteur_max / $rapport; } } // création de l'image redimentionnée vide $destination = imagecreatetruecolor($largeur_finale, $hauteur_finale); // creation de l'image redimentionnée imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_finale, $hauteur_finale, $largeur_source, $hauteur_source); //enregistre la redimentionnée à la place de l'autre selon format if (($ext "jpg") or ($ext "jepg")) { imagejpeg($destination, $name); } if ($ext == "gif") { imagegif($destination, $name); } if ($ext == "png") { imagepng($destination, $name); }