php - PHP创建的图像没有扩展名,不被视为图像
问题描述
我正在从远程服务器(例如谷歌)加载图像,但 PHP 从不将其视为图像。这是我的代码:
$photo = imagecreatefromstring(file_get_contents("https://some.com/image.jpg"));
$filename = $photo["name"];
$ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION)); //returns ""
$filepath = $photo["tmp_name"];
is_array(getimagesize($filepath); //returns false
我究竟做错了什么?
解决方案
imagecreatefromstring 返回一个图像而不是数组。
$photo = imagecreatefromstring(file_get_contents("https://some.com/image.jpg"));
ob_end_clean();
header('Content-type: image/jpeg');
imagejpeg($photo, null, 80);
如果此代码没有生成图像,则从找出 file_get_contents() 的返回值开始调试。
另外 - 在创建图像(使用任何 imagecreatefrom... 函数)之后,您正在处理图像资源,而不是文件系统或任何其他对象。图像资源没有您尝试提取的信息(名称、路径信息等)
推荐阅读
- php - 在父类中调用方法是个坏主意吗?
- javascript - Express.js: How do I make a GET request with empty parameters?
- php - 如何插入在无限加载的 WordPress 循环中每 5 个帖子之后?
- spring - Spring SAML:SAMLException:不支持的请求
- iframe - How to utilize external form and retrieve POST data from external form using SuiteScript?
- pug - 从 pug 模板调用 facebook 像素函数
- c# - WPF MVVM 在按钮单击时在视图之间导航
- r - Using sapply on column with missing values
- python - 通过子进程库的 Python discord bot 错误
- php - 从下拉php(数组)打印正确的值