comment la manipulation de l'image le type mime “application/octet-stream”?
J'ai une fonction pour faire des vignettes d'url de l'image à la mouche!
Je passe toujours à cette fonctions des images de type jpg, mais le problème apparaît lorsque je passe d'une image avec ".jpg" extension. mais quand j'essaie d'obtenir son type mime, j'ai trouvé que "application/octet-stream" .. dans ce page php, ce type mime se réfère à l'un des
IMAGETYPE_JPC,IMAGETYPE_JPX,IMAGETYPE_JB2
ce que je dois modifier ma fonction pour gérer ce type mime ??
avis ^^^^^^
function thumb($path,$width,$height) //$path => image url
{
$file_dimensions = getimagesize($path);
$file_type = image_type_to_mime_type($file_dimensions[2]);
list($Cwidth, $Cheight) = getimagesize($path);
if ($file_type=='image/jpeg'||$file_type=='image/pjpeg'){
//Load
$thumb = imagecreatetruecolor($width, $height);
$source = imagecreatefromjpeg($path);
//Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $width, $height, $Cwidth, $Cheight);
header('Content-Type: image/jpeg');
imagejpeg($thumb);
}
else if ($file_type=='application/octet-stream')
{
//^^^^^ what I should write here
}
else
{
echo "Not supported type";
}
}
OriginalL'auteur user504363 | 2012-03-14
Vous devez vous connecter pour publier un commentaire.
Je suis en train de travailler autour de la même chose tout à l'heure.
J'ai été le tester quelques images .gif, .jpeg, de .png, ... à l'aide de
finfo
j'ai trouvé le mime-type de lecture dépend des constantes que vous utilisez pour lire le fichier. Plus! Vous lisez application/octet-stream type mime à partir d'images! et cette info n'est pas faux. Voir:Si vous utilisez finfo_open() sans constantes:
Vous obtenez le type de mime que vous attendez:
tout en utilisant une constante comme FILEINFO_MIME_TYPE
vous avez obtenu une valeur différente:
De sorte que vous devez tester ce que vous avez lu lors de l'essai de mimetypes. Voir Fileinfo constantes Prédéfinies
Espère que cela aide
OriginalL'auteur quevedo
Nous ne pouvons pas vous dire parce que
application/octet-stream
est une sorte de général-type-de-binaire-fichier de type mime. Il peut être tout. Vous pouvez essayer avecimagecreatefromstring
sur les fichiers binaires de contenu. Mais gardez les doigts croisés ;).Le réel problème ici est que
getimagesize
est indépendant de la bibliothèque GD-vous utiliser pour le redimensionnement de l'image. Donc, il fournit des infos sur les fichiers GD lui-même n'est pas en mesure de traiter avec. De sorte que vous pouvez juste sortie une sorte de "non pris en charge type d'image" jusqu'à ce que vous trouver la bibliothèque qui est capable de traiter avec le mime spécifique - ou mieux disant image de type.Voir ainsi:
Oui, parce que la bibliothèque GD ne prend pas en charge à ouvrir, de les redimensionner et de sortie) ces formats. Ou le type mime est ce que vous obtenez est essentiellement informatif. Vous devez utiliser une autre image de la bibliothèque qui est capable de traiter avec les formats.
désolé, je ne suis pas expert dans le traitement de l'image .. pouvez-vous me dire à propos de 'l'image de la bibliothèque est en mesure de traiter avec les formats
Désolé, je ne peux pas vous dire. Si vous souhaitez en savoir plus, vous devez ajouter la valeur réelle(s) de
$file_dimensions[2]
(à côté de la mime-type) à votre question. Comme l'écrit, le type mime est vraiment générale, donc plus intéressant est le type d'image.OriginalL'auteur hakre
Dans le cas de l'application/octet-stream, Vous pouvez obtenir le nom de fichier d'origine et vérifier son extension. Si son jpg vous devriez être bon d'aller
Je vais en bas de vote, et je vais vous dire pourquoi. Il y a un réglage pour php qui détermine le nombre maximal de postes de réglage de la taille, mais moins que le montant total de l'espace autorisé pour php à utiliser dans la mémoire. Un exemple:
post_max_size='2m'
etmemory_limit="128M"
entraînerait l'image servi via des flux, au lieu d'une simple image/jpeg. C'est parce qu'il est au service de l'image en morceaux jusqu'à ce que la totalité de l'image est téléchargée.OriginalL'auteur hellojava