Intereting Posts
Вытягивание JSON через AJAX для заполнения Drop-Down Запуск скрипта оболочки из PHP как другого (не root) пользователя RecursiveIteratorIterator и RecursiveDirectoryIterator для вложенных списков html получить идентификатор последней вставленной записи без использования mysql_insert_id () Как создать первый PHP-расширение в C на Linux GCC? Symfony2: прерывистое высокое время отклика / медленное завершение SessionHandlerProxy :: read () Что считается длительным временем выполнения? Веб-чат в php без использования базы данных или файла Laravel 5 Форма Предварительная обработка данных запроса формы Миграции доктрины: в пространстве имен "" отсутствуют команды PHP / MySql Несколько выпадающих списков не нужны значения параметров, видимые в источнике страницы Преобразование объекта в массив в laravel Не удалось загрузить изображение на сервер ios PHP: есть ли способ увидеть «невидимые» символы, такие как \ n Персистентство FTP-сервера PHP-ресурсов через вызовы AJAX

PHP создает изображение из потока приложений / октетов

Мое приложение имеет изображения, отправленные с мобильных устройств, с типом «application / octet-stream» типа контента.

Мне нужно обработать эти изображения с помощью библиотеки GD, а это значит, что мне нужно создать объект изображения из данных.

Как правило, я использую imagecreatefromjpeg, imagecreatefrompng, imagecreatefromgif и т. Д. Для обработки файлов, загружаемых из веб-форм, но они, похоже, не работают, когда приходят ко мне в качестве приложения / октетного потока.

Любые идеи о том, как я могу достичь своей цели?

РЕДАКТИРОВАТЬ

Вот код, который я использую для создания идентификатора изображения … мой обработчик отлично работает на моем сайте, единственная разница, которую я могу рассказать между моим сайтом и данными из iOS, – это тип содержимого

public function open_image($path) { # JPEG: $im = @imagecreatefromjpeg($path); if ($im !== false) { $this->image = $im; return $im; } # GIF: $im = @imagecreatefromgif($path); if ($im !== false) { $this->image = $im; return $im; } # PNG: $im = @imagecreatefrompng($path); if ($im !== false) { $this->image = $im; return $im; } $this->error_messages[] = "Please make sure the image is a jpeg, a png, or a gif."; return false; } 

Легко 🙂

 $image = imagecreatefromstring( $data ); 

В частности:

 $data = file_get_contents($_FILES['myphoto']['tmp_name']); $image = imagecreatefromstring( $data ); 

Я нашел это в форуме codeigniter способом изменения mime, и он работает, я полагаю, вы можете использовать и для других фреймворков, это ссылка и этот код:

 //if mime type is application/octet-stream (psp gives jpegs that type) try to find a more specific mime type $mimetype = strtolower(preg_replace("/^(.+?);.*$/", "\\1", $_FILES['form_field'] ['type'])); //reg exp copied from CIs Upload.php if($mimetype == 'application/octet-stream'){ $finfo = finfo_open(FILEINFO_MIME, '/usr/share/file/magic'); if($finfo){ $_FILES['form_field']['type'] = finfo_file($finfo, $_FILES['form_field']['tmp_name']); finfo_close($finfo); } else echo "finfo_open() returned false"); } 

Расширение Fileinfo необходимо установить на сервере.

Это сработало для меня.

вы также можете использовать эту функцию. он не требует никакой другой зависимости. и отлично работают для других типов.

 function _getmime($file){ if($info = @getimagesize($file)) { return image_type_to_mime_type($info[2]); } else { return mime_content_type($file); } }