Uploader une image sur mon site (parcourir)

Fermé
r2-d4 Messages postés 385 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 11 décembre 2013 - 18 janv. 2009 à 15:17
r2-d4 Messages postés 385 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 11 décembre 2013 - 11 févr. 2009 à 12:03
Bonjour,

voilà, je voudrais que depuis un forumlaire, les visiteurs de mon site puisse envoyer des photos grâce à ces fameux boutons que l'on trouve souvent "parcourir".

permettre d'uploader l'image sur le chemin indiqué sur mon serveur FTP
dans un endroit précis pour que je puisse facilement retrouver le fichier.

Quelqu'un aurait-il un code PHP ou HTML je ne sais pas, que je puisse glisser.

Merci d'avance !
A voir également:

25 réponses

fabarone Messages postés 1783 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 14 mai 2011 320
18 janv. 2009 à 15:49
salut sa c bien simple et sympa

http://www.commentcamarche.net/faq/sujet 4308 webmaster faire facilement un espace d upload
0
r2-d4 Messages postés 385 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 11 décembre 2013 35
20 janv. 2009 à 21:42
excuse, je n'ai pas touché à mon ordinateur depuis un moment !

Mais le problème c'est que je voudrais que ce soit mes visiteurs qui puissent expédier leurs fichiers or avec ce système il n'y à que moi
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
20 janv. 2009 à 22:05
bonsoir l'upload est simple et complexe en meme temps, tu a la solution de faire une recherche sur ton ami google , sinon je te file un code qui fonctionne tu n'a qu'a adapter a ton cas

<?php
	header('Content-type: text/html; charset=UTF-8'); 
	$id = (isset($_GET['id'])) ? $_GET['id'] : 0;
	//print_r($_REQUEST);
	//echo'ici id '.$id;
	
	
	if (!isset($_REQUEST['save'])) {
		echo "<link href='css/style.css' rel='stylesheet' type='text/css' />";
		echo "<div id='bloc_formulaire' style='margin-left: 35px; margin-right: 35px'>";
		echo "<h1>Ajout d'une image</h1>";
			echo "<form method='POST' name='upForm' enctype='multipart/form-data' action='uploadImage.php' >";
				//echo"<p><br/>Taille maxi de l'image 2Mo<br/>";
				echo "<input type='file' name='imgfile'>";
				//echo "<input type='hidden' name='max_file_size' value='2000000' />";
				echo "</p>";
				echo "<input type='hidden' name='id' value='".$id."' />";
				echo "<input type='hidden' name='save' />";
				echo "<input type='submit' value='Ajouter cette image' />";
			echo "</form>";
			echo"</div>";
	} 
	else 
	{
		require_once('inc/BDDConnect.php'); // la tes info de connexions
		/**************************************/
		// michel janvier 2009
		/****************************************/
		
		$rep = "ton repertoire ou stocker tes images";
		$file_name = saveImage($rep);
		$f = $rep.$file_name;
// ici je cree 3 types d'images pour des raisons pro,toi tu ne peut qu'en faire une
		$champs = array("src_g", "thumb_g", "big_g", "id_produit");
		$valeurs = array("'".$f.".jpg'", "'".$f."_th.jpg'", "'".$f."_b.jpg'", $id);
		$BDD->insert("galeries", $champs, $valeurs);		
		
		$url = ($id==0) ? "index.php?action=1" : "index.php?action=A_FINIR&id=".$id; //a finir
		echo '<meta http-equiv="refresh" content="0; url=index.php?action=1" />';
	}

function saveImage($rep)
 {
	$limitedext = array(".jpg", ".jpeg", ".png", ".bmp", ".gif");
	
	$file_type = $_FILES['imgfile']['type'];
	$file_name = $_FILES['imgfile']['name'];
	$file_size = $_FILES['imgfile']['size'];
	$file_tmp = $_FILES['imgfile']['tmp_name'];
	
	//Verification des extensions
	$ext = strrchr($file_name,'.');
	$ext = strtolower($ext);
	
	//Recuperation de l'extension et du nom de fichier
	$getExt = explode ('.', $file_name);
	$file_ext = $getExt[count($getExt)-1];
	$file_name = str_replace(".".$file_ext,"",$file_name);
	$file_name = removeAccents($file_name);
	//echo 'filename lig 55  '.$file_name;
	
	//Récuperation de l'image uploaded
	if($file_size) 
	{
		if($file_type == "image/pjpeg" || $file_type == "image/jpeg")
		 {
			$uploaded = imagecreatefromjpeg($file_tmp);
		 } 
			elseif($file_type == "image/x-png" || $file_type == "image/png")
			 {
				$uploaded = imagecreatefrompng($file_tmp);
			 }
				 elseif($file_type == "image/gif")
				  {
					$uploaded = imagecreatefromgif($file_tmp);
				  }
		list($width, $height) = getimagesize($file_tmp);
	} 

	//echo'taille='.$file_size;
	//Création de l'image "normale" pour flash
	$flash = imagecreatetruecolor(600, 450);
	imagecopyresized($flash, $uploaded, 0, 0, 0, 0, 600, 450, $width, $height);
	
	//Création de la miniature
	$thumb = imagecreatetruecolor(81, 61);
	imagecopyresized($thumb, $uploaded, 0, 0, 0, 0, 81, 61, $width, $height);
	
	//enregistrement ds images
	imagejpeg($uploaded, $rep.$file_name."_b.jpg");		//originale
	imagejpeg($flash, $rep.$file_name.".jpg");			//image flash
	imagejpeg($thumb, $rep.$file_name."_th.jpg");		//miniature
	
	return $file_name;
}


?>


il ne te reste plus qu'a adapter, un petit conseil , ne fait pas un copier/coller , retape le et cherche a savoir comment ça fonctionne
0
r2-d4 Messages postés 385 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 11 décembre 2013 35
21 janv. 2009 à 14:35
$rep = "ton repertoire ou stocker tes images";

quand tu dis ça, est-ce queje met www.monsite.fr/lerépertoire ou /lerépertoire/directement

merci de ton aide
0
Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014 13
21 janv. 2009 à 14:38
C'est pareil, ça ne fera aucune différence.
0

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

Posez votre question
r2-d4 Messages postés 385 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 11 décembre 2013 35
21 janv. 2009 à 15:14
pourtant lorsque j'essaye d'uploader une image il cherche un uploadImage.php or je n'ai pas créé un tel fichier, le code que m'as donné lewis 34, je l'ai transformé en index.php
0
Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014 13
21 janv. 2009 à 16:22
regarde, t'as une ligne où il y a marqué ça :
echo "<form method='POST' name='upForm' enctype='multipart/form-data' action='uploadImage.php' >";

action='*.php' signifie que quand tu vas cliquer sur ton bouton valider le formulaire appelle la page '*.php'. Donc dans ton cas il faut que tu écrives ça :
echo "<form method='POST' name='upForm' enctype='multipart/form-data' action='index.php' >";
0
r2-d4 Messages postés 385 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 11 décembre 2013 35
21 janv. 2009 à 17:14
Le mieux serait que je te donne l'adresse et que tu essai aussi,

car il me met un code d'erreur PHP

www.meextee.fr/essai/
0
r2-d4 Messages postés 385 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 11 décembre 2013 35
21 janv. 2009 à 17:18
Sinon en gros il me donne l'erreur, ligne 25


Warning: main(inc/BDDConnect.php): failed to open stream: No such file or directory in d:\www\meextee.fr\htdocs\essai\index.php on line 25

Fatal error: main(): Failed opening required 'inc/BDDConnect.php' (include_path='.;c:\php\pear') in d:\www\meextee.fr\htdocs\essai\index.php on line 25
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
21 janv. 2009 à 22:12
bonsoir , je te l'ai dis il faudra adapter le script a ton cas..
ton erreur est due au fait , a mon avis que tu a laisser cette ligne
require_once('inc/BDDConnect.php')
la il te faut mettre tes parametres de connection, soit par un require_once(ou un include) ou tu appelle ton fichier qui contient tes param de connexion
soit en remplacant cette ligne par

$user = ton_login;

$bdd = Nom_de_la_base_de_donnees;

$passwd  = Mot_de_passe;

// Connexion au serveur
mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur");

mysql_select_db($bdd) or die("erreur de connexion a la base de donnees"); // la tu selectionne ta BDD



ensuite pourquoi a tu renommer la page ?
si tu la renomme il te faut changer le nom dan action du form, comme le dis azraka
a cette ligne
echo "<form method='POST' name='upForm' enctype='multipart/form-data' action='le_nom_de_ta_page' >";
0
r2-d4 Messages postés 385 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 11 décembre 2013 35
21 janv. 2009 à 23:21
OK pour le BDD ça fonctionne à présent mais maintenant il m'indique la ligne 69 où

$file_name = removeAccents($file_name);

ne lui plait pas !
0
r2-d4 Messages postés 385 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 11 décembre 2013 35
21 janv. 2009 à 23:22
soit ce message

Fatal error: Call to undefined function: removeaccents() in d:\www\meextee.fr\htdocs\essai\index.php on line 69
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
22 janv. 2009 à 05:30
parcequ'il fait appel a une fonction utilisé dans le script d'origine, tu peut commenter cette ligne, desolé je ne te l'ai pas enlevé
0
r2-d4 Messages postés 385 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 11 décembre 2013 35
22 janv. 2009 à 17:48
je peut donc enlever cette ligne !?
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
22 janv. 2009 à 21:55
oui tu peut , c'est une fonction qui m'est utile pour raison professionelle ,mais tu peut l'enlever
0
r2-d4 Messages postés 385 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 11 décembre 2013 35
22 janv. 2009 à 22:24
je l'ai enlevé,

Warning: imagejpeg(): Unable to access www.meextee.fr/essai/fichiers/73561_b.jpg in d:\www\meextee.fr\htdocs\essai\index.php on line 99

Warning: imagejpeg(): Invalid filename in d:\www\meextee.fr\htdocs\essai\index.php on line 99

Warning: imagejpeg(): Unable to access www.meextee.fr/essai/fichiers/73561.jpg in d:\www\meextee.fr\htdocs\essai\index.php on line 100

Warning: imagejpeg(): Invalid filename in d:\www\meextee.fr\htdocs\essai\index.php on line 100

Warning: imagejpeg(): Unable to access www.meextee.fr/essai/fichiers/73561_th.jpg in d:\www\meextee.fr\htdocs\essai\index.php on line 101

Warning: imagejpeg(): Invalid filename in d:\www\meextee.fr\htdocs\essai\index.php on line 101

Fatal error: Call to a member function on a non-object in d:\www\meextee.fr\htdocs\essai\index.php on line 46

Problème suivant, est-il dû a mon fichiers en vue de la phrase Invalid filename car celui-ci comme tu peut le voir se nomme 73561.JPG
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
24 janv. 2009 à 21:31
renomme le avec l'extension jpg (en minuscule)
ou alors si tu a beaucoup d'image avec l'extension .JPG (en majuscule) rajoute à cette ligne
$limitedext = array(".jpg", ".jpeg", ".png", ".bmp", ".gif", ".JPG" );

ca devrais marcher
0
r2-d4 Messages postés 385 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 11 décembre 2013 35
25 janv. 2009 à 23:04
Non malgrès ça cela ne fonctionne pas, je ne comprend pas !!!!
0
r2-d4 Messages postés 385 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 11 décembre 2013 35
25 janv. 2009 à 23:09
d'autant quel message n'a pas changé il mentionne toujours invalid filename
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
26 janv. 2009 à 05:31
et la ligne ou se passe l'erreur c'est toujours la meme ?
0
r2-d4 Messages postés 385 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 11 décembre 2013 35
26 janv. 2009 à 20:39
C'est ça le problème l'erreur est tjr la même, à part que le JPG s'est transformé en jpg !!!
0
r2-d4 Messages postés 385 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 11 décembre 2013 35
28 janv. 2009 à 23:06
Lewis, tu voit pas d'où peut venir l'erreur ?

Moi ça me semble bizarre, on devrait pas retrouver invalid filename
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
29 janv. 2009 à 05:44
2 points a verifier en premier
1) est ce que tu a la librairie GD activée dans ton php.
pour le savoir tu peut faire un fichier gd.php que tu met a la racine de ton site et tu met ce code :
<?php
echo "Vous avez PHP ".phpversion();
$gd_info = gd_info();
if(!$gd_info)
	die("<br />La librairie GD n'est pas installée !");

echo "<br />Vous avez GD {$gd_info['GD Version']}";
?>


2) verifie bien le chemin des images car a priori tes images ne sont pas trouvées
Unable to access www.meextee.fr/essai/fichiers/73561_th.jpg

et a cette endroit
$file_type = $_FILES['imgfile']['type'];
	$file_name = $_FILES['imgfile']['name'];
	$file_size = $_FILES['imgfile']['size'];
	$file_tmp = $_FILES['imgfile']['tmp_name'];
fait un echo de toutes les variables pour savoir si tu les recupere avantv de les travailler
echo'file name'.$file_name.'<br/>file sze'.$file_size.'<br/>filetmp'.$file_tmp;
0
r2-d4 Messages postés 385 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 11 décembre 2013 35
4 févr. 2009 à 12:59
pour gd.php, j'ai ce message :

Vous avez PHP 4.4.2
Vous avez GD bundled (2.0.28 compatible)

donc à priori le GD est activé.

sinon je ne comprend pas bien le 2), mon fichier est stocké sur mon pc, il n'y à aucunes raison qu'il ne le trouve pas le chemin est correct
de plus je viens d'essayer avec une autre image, même problème !
0