2010-02-19 3 views
5

в одном из моих проектов PHP, imagecreatefrompng жалуется, что изображение «не является допустимым PNG-файлом».Проблема с imagecreatefrompng (PHP)

Warning: imagecreatefrompng() [function.imagecreatefrompng]: 
'/.../...png' is not a valid PNG file in /.../...php on line ... 

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

Знает ли кто-нибудь подробности позади imagecreatefrompng или раньше сталкивался с подобной проблемой?

Спасибо за вашу помощь,

Timo

+0

Правильный ли путь? –

+1

@Timo Добро пожаловать в SO. Вместо того, чтобы указывать SOLVED в названии вашего вопроса, нажмите зеленую галочку рядом с ответом ниже. –

ответ

10

ли это PNG изображения? Запустите file против него или попробуйте fileinfo functions.

+0

Спасибо за ссылку на функции fileinfo. Я позволил PHP проверить тип mime и, как ни удивительно, изображение было файлом jpg - переименование его на .jpg решило проблему. Я предполагаю, что каждая программа открыла файл с автоматически обнаруженным типом mime правильно ... – Timo

+1

Я по-прежнему получаю ту же ошибку после проверки с этими функциями и получения ожидаемых значений: «PNG-изображение, 873 x 361, 8-бит/цвет RGBA, не чересстрочный " – spuas

+3

@spuas: Тогда у вас есть другая проблема. –

0

Проверить этот мим тип файла, который вы собираетесь загрузить, используя ниже функции:

mime_content_type($_FILES['product_img']['tmp_name']) 

Редакторы изображений часто может распознать тип файла по его содержимому, PHP может просто попытаться использовать этот файл на основе его мимики -тип. Если это не соответствует, значит, есть ошибка.