IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Ajouter une image dans MySQL [Fait]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 13
    Par défaut Ajouter une image dans MySQL
    Bonjour à tous voilà pas mal de temps que je fouine sur le net et auprès de potes en BTS Informatique mais pas moyen de trouver une façon de récupérer une image sur le pc du client et de la déplacer sur le serveur je vous donne une partie du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    <?PHP
    if($_POST['image']!=null)
    {	
    	mysql_connect("localhost","root") or die ("Impossible de se connecter : ".mysql_error());
    	mysql_select_db("***");
    	$folder = "C:\*****\****\***\****\images";
     
    	// Taille maximum
    	$MAX_FILE_SIZE = 1500000;
     
    	// Tableau array des différents types
    	$allowed_types = array("image/bmp", "image/gif", "image/pjpeg", "image/jpeg", "image/JPEG", "image/jpg", "multipart/x-zip", "video/msvideo");
     
    	// Variables récupérée par methode POST du formulaire
    	$fname = $_POST['image']['name'];
    	$ftype = $_POST['image']['type'];
    	$fsize = $_POST['image']['size'];
    	$ftmp = $_POST['image']['tmp_name'];
     
    	// Diverses test afin de savoir si :
     
    	// Le format de fichier correspond à notre tableau array
    	if(!in_array($ftype, $allowed_types))
    	{
    			$error = 1;
    	}
     
    	// La taille du fichier n'est pas dépassée
    	if($fsize > $MAX_FILE_SIZE)
    	{
    		$error = 2;
    	}
     
    	// Le fichier n'existe pas déjà
    	if(file_exists($folder."m_".$fname))
    	{
    		$error = 3;
    	}
     
    	// Si tout s'est bien déroulé
    	if(copy($ftmp, $folder.'/'.$fname.'.'.$ftype)) 
    	{	
    		$error = 0;
    	}
     
    	// Switch servant simplement à la gestion des erreurs
    	switch($error)
    	{
    		case'0':	echo("<h4>Fichier correctement envoyé.</h4>");
    					//requete
    					$requete="insert into imgfete values('$fname')";
    					$result=mysql_query($requete,$link)or die("<h4>erreur sur la requete $requete</h4><br>");
     
    					//fermeture de la connexion
    					mysql_close();
    					break;
     
    		case'1':	echo("<h4>Format de fichier incorrect.</h4><br>");
    					break;
     
    		case'2':	echo("<h4>Fichier trop volumineux.</h4><br>");
    					break;
     
    		case'3':	echo("<h4>Fichier déjà existant.</h4><br>");
    					break;
    	}		
    }
    ?>
    <form method="post" enctype= "multipart/form-data">
    	<input type="file" name="image">
    	<input type="submit">
    </form>
    Dans ma SGBDR j'ai un champ image en varchar qui doit recevoir le chemin de l image mais rien ne se passe quelqu'un pourrait il me venir en aide ??

    Merci d'avance a tous

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Aucune message d'erreur ???
    Si rien ne se passe c'est sûrement du a cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form method="post" enctype= "multipart/form-data">
    	<input type="file" name="image">
    	<input type="submit">
    </form>
    Remplace le part sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form method="post" enctype="multipart/form-data" action="<? $_SERVER['PHP_SELF'] ?>">
    <input type="hidden" name="MAX_FILE_SIZE" value="102400" />
    	<input type="file" name="image" />
    	<input type="submit" />
    </form>
    tu pourra apercevoir quelque chose et corriger les erreurs php plus facilement.
    N'oublie pas de tester l'existance de tes variables.
    SVP utilise du code html valide

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Vous devriez sérieusement lire le tutoriel intitulé Upload de fichiers en PHP car :
    • les informations sur les fichiers uploadés ne sont pas disponibles par le tableau $_POST mais $_FILES
    • le déplacement du fichier se réalise par la fonction move_uploaded_file et pas rename, copy ou je ne sais quoi
    • pour votre sécurité et pour des questions de fiabilité de votre script, je vous déconseille formellement d'utiliser le type MIME fournit par le client
    • ...

  5. #5
    Membre expérimenté
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Par défaut
    Avec move_uploaded_file() les restrictions sont souvent placées sur le paramètre destination qui permet le déplacement des fichiers chargés et filename peut entrer en conflit avec ces restrictions.

    On peut dans ce cas et aussi utiliser rename() pour depalcer les fichiers.
    j'ai eu plein de cas resolu de la sorte...........

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par acirfa
    Avec move_uploaded_file() les restrictions sont souvent placées sur le paramètre destination qui permet le déplacement des fichiers chargés
    Heureusement et on ne peut pas reprocher à PHP de faire le travail pour lequel il est prévu et configuré (safe_mode et/ou open_basedir) voir le système (niveau permissions)

    Citation Envoyé par acirfa
    et filename peut entrer en conflit avec ces restrictions.
    C'est à dire, allez au bout de votre pensée ? La fonction move_uploaded_file écrasera le fichier existant donc je ne vois pas où réside le problème (sachant qu'un test avec file_exists ou semblable permet de prendre ses précautions).

    Citation Envoyé par acirfa
    On peut dans ce cas et aussi utiliser rename() pour depalcer les fichiers.
    j'ai eu plein de cas resolu de la sorte...........
    La fonction move_uploaded_file ne déplace pas n'importe quoi et c'est (aussi) tout son intérêt : seul des fichiers uploadés pourront être et seront déplacés. La fonction rename quant à elle, et contrairement à ce que vous affirmez, est contrôlée de part et d'autres (emplacement d'origine ET destination - safe_mode, open_basedir et permissions) (sans utiliser la fonctionnalité allow_url_fopen évidemment).

Discussions similaires

  1. [WD15] ajouter une image dans une base de donnée mysql
    Par alfred5 dans le forum WinDev
    Réponses: 1
    Dernier message: 16/01/2014, 17h11
  2. [D7] Comment ajouter une image dans du RTF ?
    Par Lung dans le forum Delphi
    Réponses: 21
    Dernier message: 02/10/2006, 16h59
  3. Comment ajouter une image dans une balise div ??
    Par liv dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/05/2006, 11h48
  4. comment ajouter une image dans mon HTML??
    Par Mickey.jet dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/03/2006, 15h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo