Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1387 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  RESOLU Probleme (action="#") à ramplacer par (action="transfert.php")

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

RESOLU Probleme (action="#") à ramplacer par (action="transfert.php")

n°1741867
woiduss
Posté le 05-06-2008 à 12:27:47  profilanswer
 

Bonjour,
Voici mon problème
 
Systeme d'upload d'image sur Base de données
 
Dans mon index.php
 

Code :
  1. <?php
  2. include ("transfert.php" );
  3. if ( isset($_FILES['fic']) )
  4. {
  5. transfert();
  6. }
  7. ?>
  8. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  9. <html>
  10. <head>
  11. <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
  12. <meta name="description" content="Hebergement gratuit">
  13. <meta name="keywords" content="Hebergement gratuit">
  14. <meta name="verify-v1" content="NSP7HNCvLwTzujN55GFnwEP1Kgrvc/pHr1Qs0piu5ng=" />
  15. <title>Stock d'images</title>
  16. <link href="style.css" rel="stylesheet" media="screen">
  17. </head>
  18. <strong><font color="#00FFFF">Images</font> (jpg, png, gif) - 2Mo max</strong><br>
  19. <form enctype="multipart/form-data" action="#" method="post">
  20. <input type="hidden" name="MAX_FILE_SIZE" value="250000" />
  21. <input type="file" name="fic" size=50 />
  22. <input type="submit" value="Envoyer" />
  23. </form>


 
je souhaite changer cette ligne
 

Code :
  1. <form enctype="multipart/form-data" action="#" method="post">


 
Par celle-ci
 

Code :
  1. <form enctype="multipart/form-data" action="transfert.php" method="post">


 
Mais si je la change l'upload de mon images ne se fait pas dans ma Base De Données, je n'arrive pas à trouver pourquoi...
 
et voici mon transfert.php
 

Code :
  1. <?php
  2. function transfert ()
  3. {
  4. $ret = false;
  5. $img_blob = '';
  6. $img_taille = 0;
  7. $img_type = '';
  8. $img_nom = '';
  9. $taille_max = 250000;
  10. $ret = is_uploaded_file ($_FILES['fic']['tmp_name']);
  11. if ( !$ret )
  12. {
  13. echo "Problème de transfert";
  14. return false;
  15. }
  16. else
  17. {
  18. $img_taille = $_FILES['fic']['size'];
  19. if ( $img_taille > $taille_max )
  20. {
  21. echo "Trop gros !";
  22. return false;
  23. }
  24. $img_type = $_FILES['fic']['type'];
  25. $img_nom = $_FILES['fic']['name'];
  26. include ("connexion.php" );
  27. $img_blob = file_get_contents ($_FILES['fic']['tmp_name']);
  28. $req = "INSERT INTO images (".
  29. "img_nom, img_taille, img_type, img_blob ".
  30. " ) VALUES (".
  31. "'".$img_nom."', ".
  32. "'".$img_taille."', ".
  33. "'".$img_type."', ".
  34. "'".addslashes ($img_blob)."') ";
  35. $ret = mysql_query ($req) or die (mysql_error ());
  36. return true;
  37. }
  38. }
  39. ?>
  40. <?
  41. include("basic.php" );
  42. ?>


 
Le but et qu'une fois l'images uploadé sur la base de donnée grace à (transfert.php) le fichier nommé (basic.php) affiche les liens de l'upload  
 
exemple
 
connexion = envoi d'une requête = upload réussi = affichage des liens = http://www.monsite.com/viewer.php?id=2.gif + http://www.monsite.com/images/titredelimage.gif
 
 
voilà merci à tout ceux qui lirons ce message et qui pourront m'aider


Message édité par woiduss le 08-01-2010 à 21:16:37
mood
Publicité
Posté le 05-06-2008 à 12:27:47  profilanswer
 

n°1741889
wrksx
Posté le 05-06-2008 à 13:07:25  profilanswer
 

je croi que c'est une mauvaise idée de stocker une image dans la base de donnée... Le mieux serai de déplacer le fichier uploadé dans le répertoire qui te convient, et de stocker dans la base uniquement le chemin vers l'image. (ceci dans le but de limiter la charge de la bd avec des données trop lourdes)
 
tu devrai utiliser les tabulation pour rendre ton code plus clair aussi.
 
de plus ta requête est construite n importe comment:

Code :
  1. $req = "INSERT INTO images ("."img_nom, img_taille, img_type, img_blob "." ) VALUES ("."'".$img_nom."', "."'".$img_taille."', "."'".$img_type."', "."'".addslashes ($img_blob)."') ";


 
a la place je mettrai quelque chose du genre:

Code :
  1. $req = 'INSERT INTO images (img_nom, img_taille, img_type, img_blob)';
  2. $req .= "VALUES ('$img_nom','$img_taille','$img_type','addslashes ($img_blob)')";


 
en effet .= ajoute la nouvelle chaine au bout de la précédente; et les "." que tu as mis partout sont inutiles.

n°1741898
Paulp
~, sweet ~
Posté le 05-06-2008 à 13:33:04  profilanswer
 

Il faut appeler la fonction transfert()
Là tu l'appelles dans index.php mais pas dans transfert.php

n°1741912
woiduss
Posté le 05-06-2008 à 13:47:03  profilanswer
 

merci pour ta réponse wrksx
Mais comment créer un lien dans la base de donnée ?
car je souhaiterais une page de visionnement comme ceci ====> /viewer.php?id=646.gif
là j'ai changer mon code pour que les images soit uploadé dans un dossier de mon ftp
 

Code :
  1. <?php
  2. global $BASEURL;
  3. $domain="$BASEURL";
  4. //$domain = "";
  5. $path = "images/"; 
  6. $path_after_domain = "/images/";
  7. $max_size = 250000;
  8. ?>
  9. <?php
  10. if (!isset($HTTP_POST_FILES['userfile'])) exit;
  11. if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {
  12. if ($HTTP_POST_FILES['userfile']['size']>$max_size) {
  13.       echo "<font color=\"#333333\" face=\"Geneva, Arial, Helvetica, sans-serif\">File is too big !</font><br>\n"; exit; }
  14. if (($HTTP_POST_FILES['userfile']['type']=="image/gif" ) || ($HTTP_POST_FILES['userfile']['type']=="image/pjpeg" ) || ($HTTP_POST_FILES['userfile']['type']=="image/jpeg" ) | ($HTTP_POST_FILES['userfile']['type']=="image/png" )) {
  15.       if (file_exists($path . $HTTP_POST_FILES['userfile']['name'])) {
  16.               echo "<font color=\"#333333\" face=\"Geneva, Arial, Helvetica, sans-serif\">Il existe déjà un fichier portant ce nom, s’il vous plaît renommer votre fichier et essayez à nouveau</font><br>\n"; exit; }
  17.       $res = copy($HTTP_POST_FILES['userfile']['tmp_name'], $path .$HTTP_POST_FILES['userfile']['name']);
  18.       if (!$res) { echo "<font color=\"#333333\" face=\"Geneva, Arial, Helvetica, sans-serif\">Erreur inconnue, essayez de nouveau s’il vous plaît</font><br>\n"; exit; } else {
  19. }
  20. echo "<font color=\"#333333\" face=\"Geneva, Arial, Helvetica, sans-serif\"><hr>";
  21. echo "Namn: ".$HTTP_POST_FILES['userfile']['name']."<br>\n";
  22. echo "Storlek: ".$HTTP_POST_FILES['userfile']['size']." bytes<br>\n";
  23. echo "Filtyp: ".$HTTP_POST_FILES['userfile']['type']."<br>\n";
  24. echo "</font>";
  25. echo "<br><br><img src=\"http://".$domain."/".$path_after_domain.$HTTP_POST_FILES['userfile']['name']."\">";
  26. } else { echo "<font color=\"#333333\" face=\"Geneva, Arial, Helvetica, sans-serif\">Vous ne pouvais upload des fichier seulement de type .gif / .jpg / .rar /  !!!</font><br>\n"; exit; }
  27. }
  28. ?>


 
merci pour ton aide

Message cité 1 fois
Message édité par woiduss le 05-06-2008 à 13:50:37
n°1741990
Paulp
~, sweet ~
Posté le 05-06-2008 à 15:17:41  profilanswer
 

woiduss a écrit :

merci pour ta réponse wrksx
Mais comment créer un lien dans la base de donnée ?
car je souhaiterais une page de visionnement comme ceci ====> /viewer.php?id=646.gif
là j'ai changer mon code pour que les images soit uploadé dans un dossier de mon ftp
 
merci pour ton aide


 
Tu stockes le nom du fichier : $HTTP_POST_FILES['userfile']['name']
 
après pour l'afficher tu fais tout simplement <img src="images/<?php echo $nom ?>" />
ou $nom est le nom de l'image que tu veux afficher, recuperé dans la base de données


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  RESOLU Probleme (action="#") à ramplacer par (action="transfert.php")

 

Sujets relatifs
[résolu] false = trueProbleme avec objectdatasource.
[Résolu] Input et bouton radio : mettre une fonction en onClickproblème avec wx.DF_BITMAP
probleme connexion base sql via connecteur odbc sous vista[RESOLU] PHP+Form + select
[ASP] Probleme d'acès à un fichier sur "https" msxml3.dll error '800c0[SQL]Problème requête simple: jointure externe
[RESOLU] PHP+Array + boucle while 
Plus de sujets relatifs à : RESOLU Probleme (action="#") à ramplacer par (action="transfert.php")


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR