【问题标题】:imagecreatefromjpeg php not outputingimagecreatefromjpeg php没有输出
【发布时间】:2016-01-06 10:14:16
【问题描述】:

我正在尝试通过 imagecreatefromjpeg 重新生成图像,将其重命名并将其存储在服务器上的另一个位置,但没有输出任何内容。这是我所拥有的:

$src = 'http://example.com/assets/stock/myimagetoregenerate.jpg';

$dest = imagecreatefromjpeg($src);

imagejpeg($dest,'stock/test.jpg', 100);

去这个目录的时候,还没有生成图片。

我也尝试输出图像而不是保存它,方法是将其添加到上面的代码中:

header('Content-Type: image/jpg');

但是img src只是当前页面的url。

所有权限都设置为读写,所以这不是问题。

在服务器上启用了 GD 2.1.0。

【问题讨论】:

  • FWIW,您不需要首先打开然后重新编码图像;它只会失去更多的质量。只需下载带有curl之类的文件。
  • 我只会使用 php copy 函数,因为它适用于远程文件等。 php.net/manual/en/function.copy.php

标签: php jpeg


【解决方案1】:

在不知道源图像的详细信息的情况下,您可能会收到诸如 403、404 之类的错误,或者实际上是来自远程文件的任何错误。

如果它是您自己服务器上的文件,请使用本地路径来获取它。否则你会让服务器必须连接到自己并检索它已经拥有的东西,这就像 jQuery 中的人做 $("#"+$(this).attr("id")) 一样愚蠢(请,不要这样做 XD)

如果它确实是一个远程文件,那么您仍然过于复杂。只需使用:

copy("http://example.com/some/remote/file.jpg","localcopy.jpg");

这会更快,您将获得文件的精确副本,而不是重新压缩的版本(对于 JPEG,每次都会降低质量)。

【讨论】:

  • 我确实尝试过这个,但是没有任何东西被保存到新目录中。我需要在服务器上启用什么特殊功能才能进行复制吗?
  • 启用错误报告。如果什么都没发生,那就是出了问题。
  • 谢谢,我得到以下信息:HTTP wrapper 不支持可写连接
  • 这听起来不像是您应该能够得到的错误,除非您将远程 URL 放在目标中......
猜你喜欢
  • 2018-08-08
  • 1970-01-01
  • 2019-02-22
  • 1970-01-01
  • 2018-11-30
  • 2013-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多