Précédent   Forum du club des développeurs et IT Pro > PHP > Scripts > Éditeurs
Éditeurs Forum d'entraide sur les scripts pour les utilisateurs pour applications PHP "Editeur Riche en ligne". Avant de poster -> Éditeurs WYSIWYG
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 14/06/2012, 09h48   #1
zorgas60
Invité de passage
 
Homme
Étudiant
Inscription : juin 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 27
Points : 1
Points : 1
Par défaut Affichage Image Jpeg

Bonjour à tous,

Je cherchais un tuto sur internet sur le comment afficher un bouton type 'file'. Puis j'ai finit par trouver mon bonheur un tuto qui me disais carrèment quoi créer dans ma base de donnée et quels scripts entrer. Au début je l'ais refait un peu à ma facon en changeant mes noms d'attributs, etc. Bien évidement ca ne marche pas et je finis par recopié tous son script lettre par lettre. Mais voilà tous marche sauf à la fin c'est pas aussi magique que le tuto sa m'affiche toutes les données crypté.

Je donne le code apercu.php:

Code :
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
 
 
<?php
 
if (isset($_GET['id']))
{
 
	$id= intval ($_GET['id']);
	include ("connexion.php");
 
	$req = "SELECT img_id, img_type, img_blob FROM images WHERE img_id = ".$id;
 
	$ret = mysql_query ($req) or die (mysql_error ());
	$col = mysql_fetch_row ($ret);
 
	if ( !$col[0] )
	{
		echo "ID image inconnu";
	}
	else
	{
		header ("Content-type : ".$col[1]);
		echo $col[2];
	}
}
else
{
	echo "Mauvais ID d'image";
}
 
?>
Ce qui me chagrine c'est le intval j'ai chercher sur php manuel et apparament cela retourne la valeur numérique entière de la variable var, en convertissant la valeur dans la base spécifiée (par défaut en base 10). Et je me demande quelle valeur elle prend sur ce coup. Pour moi intval prends l'id de l'image. Donc en clair si mon image est dans l'id 12 de ma BDD elle convertira ma valeur en base de 12??

Et le deuxième hic c'est le 'Content type' qui prends les valeurs de la colone 1 de ma BDD c'est a dire la deuxième. La deuxième colone de ma BDD est le nom. Pourtant il me semble qu'il faudrait afficher mon type dans Content type qui est $col[4]. Mais dés que je fais la modification j'ai une erreur.

Voilà j'appelle à votre aide. J'utilise php 5.3.8 j'ai verifier si j'avais pas un problème de compatibilité sur certaine syntaxe. Si vous désirez un autre bout du code n'hésité pas, je vous remercie d'avance de votre aide. Pour ce qui connaisse peut être c'est le tuto de Cyril Beaussier que je remercie au passage.
zorgas60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 11h18   #2
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
on connait pas ta base donc $col[4] c'est quoi ?
et c'est pas terrible de mettre des image en BLOB dans la base, tu prends de la mémoire de la ressource et de bande passante inutilement
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 12h19   #3
zorgas60
Invité de passage
 
Homme
Étudiant
Inscription : juin 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 27
Points : 1
Points : 1
Ma BDD :

nom de la BDD : intraimage

nom de table : images

1 : img_id : clé primaire auto-increment int(11)
2 : img_nom : varchar (50)
3 : img_taille : varchar (25)
4 : img_type : varchar (25)
5 : img_desc : varchar (100)
6 : img_blob : type blob attribut binary

Ok merci du conseil pour Blob mais je vais tenter de suivre d'abord le tuto et je changerais plus tard de facon à utilisé un autre type d'image. Je sais qu'on peut utiliser l'URL d'une image ce qui rend bien moins compliqué la chose, mais je voudrais quand même stocké une image.

Pour repondre à $col[4] je dirais donc à img_desc, je me suis donc tromper je voulais remplacer par $col[3] qui est img_type. Il ne donne pas plus de sucés de le remplacer.
zorgas60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 12h48   #4
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
c'est MIME que tu dois mettre donc image/png par exemple
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 13h24   #5
zorgas60
Invité de passage
 
Homme
Étudiant
Inscription : juin 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 27
Points : 1
Points : 1
Code :
1
2
3
4
5
6
else
	{
		header ("mime_content_type : image/jpeg");
		echo $col[2];
	}
}
'???' :$ J'ai essayer comme sa parce que j'ai pas trop compris ce que signifie MIME et ou je dois le mettre. Pareil pour l'extension image/png ou plutot image/jpeg pour moi.
Si vous pouvez être plus claire svp. Merci pour votre aide.
zorgas60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 13h29   #6
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
pourquoi mettre mime_content_type ???

c'est juste

Code :
header ("Content-Type : image/jpeg");
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 13h35   #7
zorgas60
Invité de passage
 
Homme
Étudiant
Inscription : juin 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 27
Points : 1
Points : 1
Je sais pas je sais pas je test juste comme j'ai vu que la fonction je pensais que c'est sa que vous me disiez de faire.

J'ai integrer le bout de code et c'est toujours pas sa. Je vois just en plus Content-Type : image/jpeg et "ma liste de charabia".
zorgas60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 13h38   #8
zorgas60
Invité de passage
 
Homme
Étudiant
Inscription : juin 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 27
Points : 1
Points : 1
J'envoie transfert.php au cas ou ce serait un mauvaise enregistrement sur ma BDD mais j'ai verifier plus de 3 ou 4 fois :



Code :
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
<?php
 
function transfert ()
 
{
 
$ret = false;
$img_blob = '';
$img_taille = 0;
$img_type = '';
$img_nom = '';
$taille_max = 2500000;
 
$ret = is_uploaded_file ($_FILES['fic']['tmp_name']);
 
	if (!$ret)
	{
	echo "Problème de transfert";
	return false;
	}
	else
	{	
		//le fichier a bien été recu
 
		$img_taille = $_FILES['fic']['size'];
		if ( $img_taille > $taille_max)
		{
			echo "Fichier trop gros !";
			return false;
		}
		$img_type = $_FILES['fic']['type'];
		$img_nom = $_FILES['fic']['name'];
 
		include ("connexion.php");
 
		$img_blob = file_get_contents ($_FILES['fic']['tmp_name']);
 
		$req = "INSERT INTO images (".
									"img_nom, img_taille, img_type, img_blob ".
									") VALUES (".
									"'".$img_nom."', ".
									"'".$img_taille."', ".
									"'".$img_type."', ".
									"'".addslashes ($img_blob)."') ";
 
								$ret = mysql_query ($req) or die (mysql_error ());
								return true;
 
	}
 
}
?>
zorgas60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 13h39   #9
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
ton blob c'est img_blob donc met les bonnes informations
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 13h54   #10
zorgas60
Invité de passage
 
Homme
Étudiant
Inscription : juin 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 27
Points : 1
Points : 1
Code :
$img_blob = file_get_contents ($_FILES['fic']['tmp_name']);
$img_blob prends la valeur du fichier template_name ?
file_get_contents() retourne le fichier filename dans une chaîne.
Et la requête sql ajoute des "/" Pour eviter les caractères spéciaux. Je vois pas ou est l'erreur. Je sais pas du tout ce que vous avez en tête.
zorgas60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 14h24   #11
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
je parle de ta table, img_blob est bien le champs qui contient le binaire ? et img_type le MIME ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 14h33   #12
zorgas60
Invité de passage
 
Homme
Étudiant
Inscription : juin 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 27
Points : 1
Points : 1
Oui c'est censé être comme sa. img_blob pas img_blog même si je pense que c'est une faute de frappe.
zorgas60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 14h36   #13
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
bon fait un mysql_fetch_assoc et met
Code :
1
2
3
 
header ("mime_content_type : " . $col['img_type']);
echo $col['img_blob'];
ce que toi ta fait correspond a

Code :
1
2
3
 
header ("mime_content_type : " . $col['img_nom']);
echo $col['img_taille'];
normale que ça ne marchais pas, faut toujours tester tes valeurs avant ...
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 14h51   #14
zorgas60
Invité de passage
 
Homme
Étudiant
Inscription : juin 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 27
Points : 1
Points : 1
Code :
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
<?php
 
if (isset($_GET['id']))
{
 
	$id= intval ($_GET['id']);
	include ("connexion.php");
 
	$req = "SELECT img_id, img_type, img_blob FROM images WHERE img_id = ".$id;
 
	$ret = mysql_query ($req) or die (mysql_error ());
	$col = mysql_fetch_row ($ret);
 
	if ( !$col[0] )
	{
		echo "ID image inconnu";
	}
	else
	{
		header ("mime_content_type : " . $col['img_type']);
                          echo $col['img_blob']; 	
}
else
{
	echo "Mauvais ID d'image";
}
 
?>
mysql_fetch_assoc je le remplace par $col = mysql_fetch_row ($ret); ???

et je lui met quoi comme attribut? mysql_fetch_assoc ( ? , $col) ?
zorgas60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 14h53   #15
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
$col = mysql_fetch_row ($ret);
$col = mysql_fetch_assoc ($ret);

c'est la base de PHP tout ça ...
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 14h58   #16
zorgas60
Invité de passage
 
Homme
Étudiant
Inscription : juin 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 27
Points : 1
Points : 1
Je sais bien je sais bien je débue en php. Cela dit cela n'a pas changer grand chose. Juste mes caractères sont soulignés maintenant. :/
zorgas60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 15h03   #17
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
montre ton nouveau code
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 15h06   #18
zorgas60
Invité de passage
 
Homme
Étudiant
Inscription : juin 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 27
Points : 1
Points : 1
apercu.php :

Code :
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
<?php
 
if (isset($_GET['id']))
{
 
	$id= intval ($_GET['id']);
	include ("connexion.php");
 
	$req = "SELECT img_id, img_type, img_blob FROM images WHERE img_id = ".$id;
 
	$ret = mysql_query ($req) or die (mysql_error ());
	$col = mysql_fetch_assoc ($ret);
 
	if ( !$col['img_id'] )
	{
		echo "ID image inconnu";
	}
	else
	{
		header ("mime_content_type : " . $col['img_type']);
                         echo $col['img_blob']; 	
}
else
{
	echo "Mauvais ID d'image";
}
 
?>
zorgas60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 15h07   #19
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
mime_content_type ...
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2012, 15h13   #20
zorgas60
Invité de passage
 
Homme
Étudiant
Inscription : juin 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 27
Points : 1
Points : 1
Citation:
Envoyé par stealth35 Voir le message
pourquoi mettre mime_content_type ???

c'est juste

Code :
header ("Content-Type : image/jpeg");
Je met sa alors?

Code :
1
2
header ("Content-Type : " . $col['img_type']);
          echo $col['img_blob'];
???
zorgas60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h23.


 
 
 
 
Partenaires

Hébergement Web