2009-03-02 7 views
0

J'ai un script qui produira une image jpg, gif ou png. Il utilise le type de contenu approprié en fonction de l'extension du fichier (qui dans ce cas sera toujours la bonne).Existe-t-il un type de contenu différent pour les images avec un profil de couleur différent?

Le problème est que j'ai un petit nombre de fichiers qui provoquent une erreur interne du serveur 500 lorsque j'essaie d'y accéder de cette façon. Cependant, ils fonctionnent si j'essaie d'y accéder avec un lien direct.

Ces fichiers ont une différence: leur profil de couleur n'est pas intégré à sRGB, mais à la place il est "sRGB IEC61966-2.1", ou "non calibré".

Pourquoi ai-je une erreur?

Mon script: http://pastie.org/pastes/404257

EDIT: J'ai changé d'inclure à readfile et cela a fonctionné. Mais je ne sais pas pourquoi ...

+0

Remarque: Cela peut très bien être dû à une certaine configuration du serveur, car sur mon ordinateur personnel, il fonctionne correctement, mais seulement sur mon hôte. –

Répondre

0

Non, les types MIME ne spécifient pas de profils de couleur. Tout ce qui est nécessaire pour interpréter un profil de couleur est intégré dans les données de l'image; il n'y a pas d'exigence d'informations supplémentaires au niveau du transfert de base afin de prendre en charge les profils de couleur.

Le problème était probablement dû à autre chose. Par exemple, si vous les avez inclus avec PHP include(), alors une occurrence de la séquence d'octets '<?' peut avoir provoqué le lancement de l'analyseur PHP, générant des erreurs.

La modification de readfile() comme vous l'avez fait ressemble à la bonne solution.

Remarque: le script auquel vous avez lié a de sérieux problèmes de sécurité causés par un manque de validation des entrées. Vous le savez peut-être déjà et l'utilisiez simplement comme un exemple simplifié, auquel cas - espérons que personne ne copie le code.

+0

Merci, et oui ce n'est qu'un exemple simplifié. –

Questions connexes