2012-03-14 1 views
3

У меня есть функция, чтобы сделать эскиз URL-изображения на лету! Я всегда перехожу к этим функциям изображений с типом jpg, но проблема возникает, когда я передаю изображение с расширением «.jpg». но когда я пытаюсь получить его тип пантомимы, я обнаружил, что это «приложения/октет-поток» .. в этом php page, этот тип мим относится к одному изКак использовать тип mime изображения «application/octet-stream»?

IMAGETYPE_JPC, IMAGETYPE_JPX, IMAGETYPE_JB2

что я нужно изменить мою функцию для обработки этого типа mime?

уведомление ^^^^^^

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"; 
     } 
} 

ответ

0

Мы не можем сказать вам, потому что application/octet-stream является своего рода общего типа-в-двоично-файла мим-типа. Это может быть все. Вы можете попробовать с imagecreatefromstring в двоичном виде файлов. Но скрестите пальцы;).

Настоящая проблема заключается в том, что getimagesize не зависит от библиотеки GD, которую вы используете для изменения размера изображения. Таким образом, он предоставляет информацию о файлах, с которыми сам GD не справляется. Таким образом, вы можете просто выводить какой-то «неподдерживаемый тип изображения», пока не найдете какую-нибудь дополнительную библиотеку, способную справиться с конкретным типом изображения mime или better.

Смотрите так же:

+0

ошибка: «Данные не в распознанном формате» – user504363

+0

Да, потому что библиотека GD не поддерживает открытие (изменение размера и выход) этих форматов. Или мимический тип, который вы получаете, в основном информативный. Вы должны использовать другую библиотеку изображений, которая может обрабатывать форматы. – hakre

+0

извините, я не разбираюсь в обработке изображений. Можете ли вы рассказать мне о том, что «другая библиотека изображений способна обрабатывать форматы» – user504363

-2

В случае приложения/октет потока, Вы можете получить оригинальное имя файла и проверьте его расширение. Если его jpg, вы должны быть хорошо идти

+0

Тот, кто ниспровергнут, должен также добавить свою точку зрения. Это отлично сработало для меня. – hellojava

+2

Я проголосую за него, и я скажу вам, почему. Существует параметр для php, который определяет максимальный размер размера сообщения, но меньше общего объема пространства, разрешенного для использования php в памяти. Пример: 'post_max_size = '2m'' и' memory_limit = "128M" 'приведет к тому, что изображение будет передаваться через поток вместо простого изображения/jpeg. Это потому, что он служит изображения в кусках, пока не будет загружено все изображение. –

Смежные вопросы