在我正在开发的网站中,我需要能够通过imagejpeg()传递我的所有图像,所以我决定(因为我的网站只接受JPG,BMP PNG上传)以便首先将BMP和PNG转换为JPG .
现在转换BMP我用过这里的脚本:http://forums.codewalkers.com/php-coding-7/how-to-convert-bmp-to-jpg-879135.html
当我通过普通的BMP时,脚本工作正常 .
现在,我有一个PNG,我通过imagecreatefrompng()进行转换时遇到了问题,过了一段时间我意识到它有mime-type image / x-ms-bmp ....
我尝试通过BMP脚本传递图像但我收到以下错误:
警告:imagecreatefromgd()[function.imagecreatefromgd]:'C:\ Users \ Tom \ AppData \ Local \ Temp \ GD50C1.tmp'不是C:\ xampp \ htdocs \ test \ cropimage \ FCreateImageFromBMP中的有效GD文件 . php在第10行
如果有人在此之前遇到过这种情况,请提供帮助 . 如果您需要查看任何代码,请告诉我 .
先谢谢你,汤姆 .
编辑:可能有用的是,错误发生的行(从上面的链接)si这一个:
$tmp_name = tempnam("/tmp", "GD");
1 回答
如果一些先决条件失败,您链接的代码将退出:
因此,假设源文件和tmp文件是可读/写的,它看起来像你给它的文件(它作为.png发送但提供BMP mime类型)实际上也不是BMP文件,因为文件内容不要以“BM”标识符开头 . 如果您附加文件,也许有人可以确定它到底是什么 .
我用来解决这个问题的另一个解决方案是使用ImageMagick的convert命令将大多数文件类型(无论它们是什么)转换为所需的格式:
您可以在此处获取适用于Windows和其他平台的ImageMagick:http://www.imagemagick.org/script/binary-releases.php