cs_lancelolo
Messages postés21Date d'inscriptionmardi 16 novembre 2004StatutMembreDernière intervention16 octobre 2009
-
16 oct. 2009 à 18:18
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 2011
-
16 oct. 2009 à 20:53
Bonjour,
J'ai des pages php qui me permettent de transférer des photos dans une base de données avec le type "blob". Le problème c'est que certaines photos ne se chargent pas entierment. Il y a toujours une bande blanche dans le bas de la photo. Un problème dans le chargement ou dans le poids ? Pourtant mes photos font moins de 100 Ko. Voilà mes pages :
une page photo.php qui reçoit en parametre l'id du véhicule à qui attribuer la photo (la pas de pb)
<HEAD>
</HEAD>
<?php
include ("transfert.php");
if ( isset($_FILES['fic']) )
{
if (transfert($_GET["voit"]))
{
echo "Transfert réussi";
echo "
Retour
";
}
}
?>
<form enctype="multipart/form-data" action="#" method="post">
Et en transferant des photos de moins de 100 Ko j'ai une bande blanche en bas de la photo, sauf pour celle de 60Ko, pas de bande.
Visible ici par ex : http://www.spvautomobiles.com/detail.php?voit=39
Merci d'avance pour votre aide parce que la je tourne en rond.
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 16 oct. 2009 à 20:53
Salut,
Je pense que la réponse ne se trouve pas dans ton script, mais du côté de ta table MySQL, plus précisément, le type de champ utilisé pour stocker tes photos...
Jette un oeil ici : Capacités des colonnes
BLOB => 2^16 + 1 octet. Soit 65536+1 = 65537 octets.
Or 65537 octet, c'est, en puissance de 2, exactement 64Kio (65,5Ko)
Conclusion, dans un champ de type BLOB, on ne PEUT PAS stocker plus de 64Ko de données. Si tes photos peuvent aller jusqu'à 100Ko, il faut alors changer le type de ta colonne pour MEDIUMBLOB :
ALTER TABLE `images` MODIFY `img_blob` MEDIUMBLOB NULL;
Je profite de l'occasion pour attirer ton attention sur la protection que tu fais sur img_blob : c'est infiniment insuffisant. Utilise de préférence mysql_real_escape_string() qui protègera le contenu des caractères binaires qui pourraient causer ta perte ;)