Probleme lors d'un upload

cs_voyager Messages postés 8 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 27 décembre 2010 - 26 déc. 2010 à 23:37
cs_voyager Messages postés 8 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 27 décembre 2010 - 27 déc. 2010 à 19:38
Bonjour

Ci-dessous ma démarche bon je suis débutant mais je me soigne, mais dans le cas présent après de nombreux essais je reste bloque

1) Upload
2) Redimensionner l'image uploader
3) Charger l'image dans un db

Tout semble se passer correctement mais malheureusement les photos n apparaissent pas dans ma galerie.

Le code que j'utilise
<?php
session_start();
$dj = "";
$dj = date ("d/m/Y");
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="navcontainer.css" type="text/css" media="screen" title="Normal" />
<style type="text/css">
<!--
.img { width: 215px;
heigh: 215px;
}
-->
</style>
</head>






<li id="active">[Commercant.php Photo et renseignements personnel]</li>
<li>[Etaleview.php Visionner son Etale]</li>






Construire son etale virtuelle


<center><form enctype="multipart/form-data" action="" method="post">
Numero " />
Nom du produit
Prix
Quantite
date " style="width:80px" />

Lien

</form></center>

</html>
<?php
$dj = date ("d/m/Y");
$target = 'monsite/';
if(isset($_POST['validation'])) {

//Indique si le fichier a �t� t�l�charg�
if(!is_uploaded_file($_FILES['monfichier']['tmp_name']))
echo 'Un probl�me est survenu durant l op�ration. Veuillez r�essayer !';
else {
//liste des extensions possibles
$extensions = array('/png', '/gif', '/jpg', '/jpeg');

//r�cup�re la cha�ne � partir du dernier / pour conna�tre l'extension
$extension = strrchr($_FILES['monfichier']['type'], '/');

//v�rifie si l'extension est dans notre tableau
if(!in_array($extension, $extensions))
echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.';
else {
//on d�finit la taille maximale
define('MAXSIZE', 300000);
if($_FILES['monfichier']['size'] > MAXSIZE)
echo 'Votre image est sup�rieure � la taille maximale de '.MAXSIZE.' octets';
else {

//on se connecte (remplacer les param�tres de connexion)
$connexion = mysql_connect("localhost", "", "") or exit (mysql_error());
$database = mysql_select_db("commande") or exit (mysql_error());

//r�cup�ration des infos saisies
$numerocommercant = mysql_real_escape_string($_POST['numerocommercant']);
$nomproduit = mysql_escape_string($_POST['nomproduit']);
$prixproduit = mysql_escape_string($_POST['prixproduit']);
$quantiteproduit = mysql_escape_string($_POST['quantiteproduit']);
$date = mysql_escape_string($_POST['date']);

//Lecture du fichier. On doit utiliser la fonction mysql_escape_string car les donn�es binaires contiennent des caract�res sp�ciaux.

$filename = $_FILES['monfichier']['tmp_name'];
$ImageChoisie = imagecreatefromjpeg($_FILES['monfichier']['tmp_name']);
$TailleImageChoisie = getimagesize($_FILES['monfichier']['tmp_name']);
$NouvelleLargeur = 850; //Largeur choisie à 350 px mais modifiable

$Reduction = ( ($NouvelleLargeur * 100)/$TailleImageChoisie[0] );
$NouvelleHauteur = ( ($TailleImageChoisie[1] * $Reduction)/100 );
$NouvelleImage = imagecreatetruecolor($NouvelleLargeur , $NouvelleHauteur) or die ("Erreur");
imagecopyresampled($NouvelleImage , $ImageChoisie, 0, 0, 0, 0, $NouvelleLargeur, $NouvelleHauteur,$TailleImageChoisi[0],$TailleImageChoisie[1]);
ob_start();
imagejpeg($NouvelleImage ,null, 100);
$image = ob_get_clean();
$image = strtr($image,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
//On remplace les lettres accentutées par les non accentuées dans $fichier.
//Et on récupère le résultat dans fichier
//En dessous, il y a l'expression régulière qui remplace tout ce qui n'est pas une lettre non accentuées ou un chiffre//dans $fichier par un tiret "-" et qui place le résultat dans $fichier.
$image = preg_replace('/([^.a-z0-9]+)/i', '-', $image);

//Il ne reste qu'� ins�rer tout �a dans notre table.
mysql_query("INSERT INTO etale(numero_commercant, nomproduit, prixproduit, date, quantite, photo, extension) VALUES('".$numerocommercant."', '".$nomproduit."','".$prixproduit."', '".$date."','".$quantiteproduit."', '".$image."', '".$_FILES['monfichier']['type']."')") or exit (mysql_error());
mysql_close();
echo 'L insertion s est bien deroulee !';

$connexion = mysql_connect("localhost", "", "") or exit (mysql_error());
$database = mysql_select_db("commande", $connexion) or exit (mysql_error());
$affichage = mysql_query("SELECT ID, nomproduit, prixproduit, quantite FROM etale ORDER BY ID DESC LIMIT 1") or exit (mysql_error());
$result = mysql_fetch_array($affichage);

echo '
';
echo 'Nom du produit : '.$result['nomproduit'].'

';
echo 'Prix : '.$result['prixproduit'].'Euros

';
echo 'Quantite : '.$result['quantite'].'Kilos

';
echo '[apercu1.php?ID='.$result['ID'].' ]';
echo '[Etaleview.php Verifier la mise en page]

';
echo '
';

mysql_close();
}
}
}
}
?>

Il doit surement manquer quelque chose. Mais Je ne vois pas.
Merci d'avance pour votre aide
voyager

2 réponses

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
27 déc. 2010 à 13:09
bonjour

si tu as phpmyadmin verifier si le champs de l'image est remplit dans la ligne.

dans ton insertion je comprend pas
'".$image."', '".$_FILES['monfichier']['type']."')"

puisque ton image est resampled
elle est jpg

faire attention que tu es pas ???.jpg.jpg

a++
0
cs_voyager Messages postés 8 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 27 décembre 2010
27 déc. 2010 à 19:38
Bonjour

Merci pour ta réponse

J ai supprimer la partie '".$_FILES['monfichier']['type']."' tu as raison probablement que j avais deux fois la même chose mais cela ne change rien j ai le même resulat.
L upload a l air de se faire, l insertion dans la base se fait correctement et les nouvelles dimensions sont bien attribuées je peu voir les détailles dans la base (j ai effectivement phpmyadmin).
Le seul hic les images n apparaissent pas lorsque je les récupères.
Les questions que je me pose sont:
-Sous quel format est ma variable $image car si la variable n a pas le bon format je peux toujours insister.
-J ai aussi un doute sur l upload car je n upload pas vraiment l image dans un fichier en effet j ai lu quelque part qu il faut d'abord l uploader sur le serveur avant de la redimensionner

Enfin je poursuit mes investigations.

Merci d avance pour vos futur réponses

voyager
0
Rejoignez-nous