Rechercher : dans
Par :

[php]upload d'images: chargement non effectué

Dernière réponse le 3 mar 2008 à 12:17:59 tonguim, le 1 aoû 2007 à 11:52:12 
 Signaler ce message aux modérateurs

Bonjour,

mon objectif est de permettre le chargement de 3 images à partir d'un formulaire form.php; le script php se trouve dans le fichier chargement.php.

Dans form.php, à l'endroit où l'utilisateur doit cliquer pour charger l'image, j'appelle le fichier chargement.php ainsi:

include "chargement.php"
. Le problème est que l'image ne se charge pas. Par contre lorsque j'exécute chargement.php de façon isolée, le chargement de l'image s'effectue avec succès. Il y'a probablement un problème de transmission de données (le nom du fichier chargé peut-être) entre les 2 fichiers. Merci de m'aider à résoudre mon problème. Voici les codes:

form.php

<!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 http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	<title>Document sans titre</title>
</head>
	<body>
		<form action="" method="post" name="form1" class="Style1" enctype="multipart/form-data">
			<table>
				<tr><!-- 3 images doivent être chargées-->
					<td><?php include "chargement.php" ?></td>
					<td><?php include "chargement.php" ?></td>
					<td><?php include "chargement.php" ?></td>
				  </tr>
			 </table>
		</form>
</body>
</html>


chargement.php

<html>
	<head><title>Upload d'images</title>
		<style type="text/css">
			body {font-family:Arial, Verdana, sans-serif;font-size:0.8em;}
			#bouton {background-color:#FF9900;}
		</style>
	</head>
	<body>
		<?php
		
			//On param&eacute;tre la largeur, la hauteur et le poids maxi &agrave; ne pas d&eacute;passer.
			$width_maxi = "300";
			$height_maxi = "500";
			$taille_maxi ="30720";//bytes
			
			$fichier = $_FILES['fichier']['name'];
			$taille=$_FILES['fichier']['size'];
			$tmp = $_FILES['fichier']['tmp_name'];
			$size_tmp=getimagesize ($tmp);
			
			if ($fichier !="none")
			{
				if (($taille < $taille_maxi)&& ($size_tmp[0]<=$width_maxi)&&($size_tmp[1]<=$height_maxi))
				{
					$point=strrpos($fichier, ".");			
					if ($point)
						$extension=substr ($fichier, $point);
					else
						$extension ="";
			
					$date=date("ymdhis");
			
					//indiquer l'url relative vers le dossier d'upload
					$chemin="../images/suivi_photo/";
					//un nouveau nom qui prend en compte la date, l'heure, les minutes 
					//et secondes est cr&eacute;e ; ainsi, aucune image ne peut &ecirc;tre &eacute;cras&eacute;e sur le serveur
					$nouveau_nom = $chemin.$date.$extension;
					
					if (move_uploaded_file($tmp, $nouveau_nom)) 
					{
						echo "Transfert du fichier r&eacute;ussi";
						$size=getimagesize ($nouveau_nom);
						echo "Largeur = ".$size[0]." pixels<br/>";
						echo "Hauteur = ".$size[1]." pixels<br/>";
						echo "Poids = ".$taille." octets<br/>";
						form();
					}					
					else 
					{
						$taille_maxi_ko=$taille_maxi/1024;
						echo "Transfert &eacute;chou&eacute;<br/>";
						echo "La largeur de l'image ne doit pas &ecirc;tre sup&eacute;rieure &agrave; $width_maxi pixels.<br/>";
						echo "La hauteur de l'image ne doit pas &ecirc;tre sup&eacute;rieure &agrave; $height_maxi pixels.<br/>";
						echo "Le fichier ne doit pas d&eacute;passer $taille_maxi_ko Ko.<br/>";
						form();
					}			
				}
				else 
				{
					$taille_maxi_ko=$taille_maxi/1024;
					echo "Le fichier est trop lourd : envoi refus&eacute;<br/>
					Le fichier ne doit pas d&eacute;passer $taille_maxi_ko Ko.<br/>";
					echo "La largeur de l'image ne doit pas &ecirc;tre sup&eacute;rieure 
					&agrave; $width_maxi pixels; elle fait ici $size_tmp[0] pixels<br/>";
					echo "La hauteur de l'image ne doit pas &ecirc;tre sup&eacute;rieure 
					&agrave; $height_maxi pixels ; elle fait ici $size_tmp[1] pixels<br/>";
					form();
				}			
			}
			
			//le formulaire d'upload
			function form() 
			{
				global $taille_maxi;
				echo '<hr/>
					<form enctype="multipart/form-data"  action="charger_img4.php" method="post">
						<p><input type="hidden" name="max_file_size" value="36120" />
						"Taille maximale du fichier accept&eacute;e: " . ($taille_maxi / 1024) . "Ko"
						<input name="fichier" type="file" size="35" />
						<input type="submit" value="T&eacute;l&eacute;charger" id="bouton" />
						</p>
					</form>
					</body></html>';			
			}		
		?>
Configuration: Windows XP
Firefox 2.0.0.6

Meilleures réponses pour « [php]upload d'images: chargement non effectué » dans :
[PHP] Upload de fichiers Voir Le langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
Uploader un fichier sur MediaFire VoirL'upload (ou chargement) est le fait de charger un fichier sur un serveur distant depuis son ordinateur. C'est le contraire de download (téléchargement). Comment uploader un fichier sur MediaFire ? Cliquez sur ce lien :...
[Webmaster] Afficher une image de grande taille VoirPour la plupart des internautes, afficher une image de grande taille dans une page web est trop lourd. Zoomify est un petit programme Flash qui permet de rendre une image zoomable et navigable, et chargeant l'image par morceau selon le...
Rechercher des images de Noël : père Noël, traîneaux, sapin... VoirRechercher des images de Noël sur Internet Effectuer une recherche rapide d’images de Noël Effectuer une recherche avancée d’images de Noël Rechercher des images de Noël sur une banque d’images en ligne Rappel Rechercher des images de...
Télécharger Imagegrab VoirCertains lecteurs vidéos proposent de capturer une image à partir de la vidéo en lecture. ImageGrab permet d'effectuer une capture d'image à partir d'une vidéo. Il supporte notamment les formats AVI, MPEG, WMV ou des flux vidéos live. ImageGrab ne...
PHP - Génération d'images VoirPrérequis PHP permet de créer des images au format GIF à l'aide d'une librairie de fonctions prévue à cet effet. La librairie permettant de créer et manipuler des fichiers graphiques se nomme GD, ainsi, pour pouvoir utiliser ces fonctions il faut...
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...

1

un overdosé au café, le 1 aoû 2007 à 12:10:44

Commence déjà par enlever les balises <html>, <head> et <body> ( et leur balise de fermeture correspondante ) de chargement.php, puis tu me diras si ca marche mieux...

Répondre à un overdosé au café

2

Alain42, le 1 aoû 2007 à 14:20:16

Il faut plutot faire :

<form action="" method="post" name="form1" class="Style1" enctype="multipart/form-data" action="chargement.php">
			<table>
				<tr><!-- 3 images doivent être chargées-->
					<td><input type="file" name="fichier1"></input></td>
					<td><input type="file" name="fichier2"></input></td>
					<td><input type="file" name="fichier3"></input></td>
				  </tr>
			 </table>
		</form>


et après tu traite côté serveur avec chargement.php

je n'ai pas testé.

si tu n'es pas faché avec l'anglais vas voir ce lien pour une sol tte faite:

http://the-stickman.com/...

Répondre à Alain42

3

tonguim, le 2 aoû 2007 à 18:42:25

Merci pour vos réactions.
J'ai lu l'article que m'a proposé alain42: cela concerne le javascript alors que mon script est fait en php.

J'ai revu mon script, car il me faut charger à la fois 3 images. J'arrive à charger les 3 images, mais le script a toujours des problèmes:

1-lorsque je renomme les images chargées, leur extension ne s'affiche pas
2-le renommage (rename) ne se fait que pour une seule image alors que je voudrais renommer les 3 images chargées
3-l'instruction d'insertion des noms des images dans la base de données MySql n'insère pas les données

Merci de m'aider à résoudre ces problèmes.

Voici le script

<?php
	include "connexion.php";
	form();	
	//le formulaire d'upload
	
	function form()
	{
		global $taille_maxi;
		global $php_code_agem; //recupération du code agem du fichier visites_march_trav.php
		$date=date("ymdhis");
		
		echo '<hr/>
		<form enctype="multipart/form-data" action="" method="post">
			<table width="80%" border="0" cellspacing="0" cellpadding="0" align="right">
				<tr>
					<td>
						<input type="hidden" name="MAX_FILE_SIZE" value="500000">';
						for($i = 1; $i <= 3; $i++)
						{
							echo 'image '.$i.' '.'<input type="file" name="photos[]"><br>';
						}
						echo '<input type="submit" name="btonEnvoyer" value="Envoyer les images">
					</td>
				</tr>
			</table>
		</form>';
		if ($_POST['btonEnvoyer'])
		{
			$rep_destination = '../images/suivi_photo/';
			
			$point=strrpos($_FILES['photos']['name'], ".");	
			if ($point)
				$extension=substr($_FILES['photos']['name'],strlen($_FILES['photos']['name'])-4,4);
				//$extension=substr($_FILES['photos']['name'], $point);
			else
				$extension ="";		
			
			foreach ($_FILES['photos']['name'] as $key => $value)
			{
				$nouveau_nom = $rep_destination.$php_code_agem.$date.$extension;
				$uploadfile = $rep_destination . basename($_FILES['photos']['name'][$key]);
				//echo $uploadfile;
				if (move_uploaded_file($_FILES['photos']['tmp_name'][$key], $uploadfile))
				{				
					rename(basename($_FILES['photos']['name'][$key]), $nouveau_nom);
					echo ' image chargée avec succès! <br>';
					
					requete="INSERT  INTO suivi_photos( id, code_agem, photo1, photo2, photo3 ) VALUES (  '',  '$php_code_agem',  "$_FILES['photos']['name'][$key]" )";
					mysql_query($requete);
				}
			}
		}
	}
?>

Répondre à tonguim

4

 molto, le 3 mar 2008 à 12:17:59
  • +1

Bonjour je voudrais savoir comment mettre un chemin d'une image dans une base de données et ensuite charger cette image avec toutes ses propriétés Merci de vouloir m'aider
NB c'est bien sur en PHP

Répondre à molto