imagecreatefromjpeg php没有输出

时间:2016-01-06 10:14:16

标签: php jpeg

我正在尝试通过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只是当前页面的网址。

所有权限都已设置为读取和写入,因此不存在问题。

服务器上已启用GD 2.1.0。

1 个答案:

答案 0 :(得分:2)

在不知道源图像的细节的情况下,您可能会收到诸如403,404之类的错误或者远程文件中的任何错误。

如果它是您自己服务器上的文件,请使用本地路径来访问它。否则,您必须让服务器连接到自己并检索已有的内容,这与jQuery中的人if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist"); // log in at server1.example.com on port 22 if(!($con = ssh2_connect("192.xxx.xx.xx", 22))){ echo "fail: unable to establish connection\n"; } else { // try to authenticate with username root, password secretpassword if(!ssh2_auth_password($con, "", "")) { echo "fail: unable to authenticate\n"; } else { // allright, we're in! echo "okay: logged in...\n"; // execute a command if (!($stream = ssh2_exec($con, "ls -al" ))) { echo 123; echo "fail: unable to execute command\n"; } else { // collect returning data from command stream_set_blocking($stream, true); $data = ""; while ($buf = fread($stream,4096)) { $data .= $buf; } ssh2_exec($con, 'ls -al; echo "__COMMAND_FINISHED__"' ); fclose($stream); } } } 一样愚蠢(请 don&#39 ;做这个XD)

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

$("#"+$(this).attr("id"))

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