PHP imagecreatefromstring(): gd-jpeg, libjpeg: erreur récupérable
Je suis en train de charger une image à partir d'un site externe sur lequel je n'ai aucun contrôle.
La plupart du temps, il fonctionne très bien (des centaines d'images testé à ce jour).
Il est maintenant de me donner cette erreur pour une image particulière:
imagecreatefromstring(): gd-jpeg, libjpeg: erreur récupérable: Corrompre les données JPEG: fin prématurée de segment de données
à partir de cette ligne:
$im = @imagecreatefromstring( $imageString );
L'avis que j'avais lu jusqu'à présent suggère d'ajouter:
ini_set("gd.jpeg_ignore_warning", true);
mais cela n'a eu aucun effet et je suis encore en train de l'erreur. Je suis en train de faire la fonction ini_set juste avant l'appel. Est que est-il pertinent?
Je suis vraiment coincé sur la façon d'ignorer cette erreur et de poursuivre.
BTW, vous êtes simplement désireux d'afficher cette image, ou êtes-vous réellement désireux de le copier sur votre serveur?
Je ne reçois pas tous les avertissements concernant le fichier INI, il est toujours une erreur fatale sur le gdcreate fonction.
J'ai besoin de charger l'image dans le but de faire une vignette et l'enregistrer localement.
Alors je suggère de le copier sur votre serveur en premier, puis à l'aide de la
imagecreatefromjpeg()
, imagecreatefromgif()
ou imagecreatefrompng()
fonctions sur le fichier que vous avez copié, il est lié à être moins enclins à faire des erreurs.OriginalL'auteur Eddie | 2011-04-08
Vous devez vous connecter pour publier un commentaire.
Le problème était dû à mon erreur de manipulation. J'avais mis en place un gestionnaire d'erreur, donc mon appel à
n'était pas la suppression des erreurs.
En modifiant mon gestionnaire d'erreur avec:
Je peux maintenant correctement supprimer les erreurs sélectionnées.
J'ai trouvé l'info ici: http://anvilstudios.co.za/blog/php/how-to-ignore-errors-in-a-custom-php-error-handler/
OriginalL'auteur Eddie
cela peut se résoudre avec:
OriginalL'auteur حسین عبایی
Si vous êtes juste de montrer l'image, alors je suggère simplement lire le contenu et l'affichage de l'image comme suit:
Si vous êtes désireux de copier l'image sur votre serveur, vous avez quelques options, dont deux sont des
copy()
de la fonction ou de la méthode utilisée ci-dessus, puisfwrite()
:Option 1 - Le
copy()
fonction, disponible en PHP 4Option 2 - à l'Aide de
file_get_contents()
etfwrite()
J'espère que vous trouverez quelques une utilisation dans le ci-dessus
file_get_contents()
méthode avecfwrite()
, vous avez besoin pour mettre en œuvre vos propres extensions de vérifier sur le fichier distant. Si vous utilisez lefile_get_contents()
d'AFFICHER uniquement l'image, vous devez valider l'image d'extensions et d'appliquer la relative au type de contenu de votre en-tête.OriginalL'auteur SimonDowdles
Considérant que vous voulez faire une miniature et de l'enregistrer, vous pouvez mettre en œuvre une pratique de la fonction de redimensionnement comme suit:
Puis, après que vous avez copié le fichier sur votre serveur à l'aide de l'un de mes méthodes dans ma réponse ci-dessus cela, il vous suffit d'appliquer la fonction comme suit:
Cette fonction me sert assez bien. Je l'applique à 1000 images par jour et il fonctionne comme un charme.
OriginalL'auteur SimonDowdles