我正在尝试通过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。
答案 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的质量)。