尝试重新采样一个图像并通过ftp将其上传(重新上传)到我的服务器。 我有ftp访问权限,所以这里没有连接问题,但是我的文件没有去那里,因为imagecopyresized句柄是一个数字(1)而不是文件。
问题是,我应该怎么处理这个litle代码
imagejpeg($background,ftp_put($conn_id, $destino, imagecopyresized($background, $im, 0, 0, 0, 0, $nw, $nh, $w, $h), FTP_BINARY),99);
谢谢,
Pluda
答案 0 :(得分:1)
将该图像保存到文件然后发送
$servername = "8.8.8.8";
$ftpUser = "user";
$ftpPass = "pass";
$conn = ftp_connect($servername) or die("Error connecting to $servername");
if(ftp_login($conn, $ftpUser, $ftpPass))
{
ftp_put($conn_id, "image.jpg", $file);
}
答案 1 :(得分:0)
您可以使用输出缓冲区来捕获imagejpeg
的输出并将其发送到ftp:
imagecopyresized($background, $im, 0, 0, 0, 0, $nw, $nh, $w, $h);
ob_start();
imagejpeg($background, NULL, 99);
$background = ob_get_contents();
ob_end_flush();
ftp_put($conn_id, $destino, $background, FTP_BINARY);
答案 2 :(得分:0)
ftp_put - 此函数的第三个参数必须是本地文件的路径。
因此,您应该将图像保存到本地,然后尝试使用ftp_put函数
$local_file = '/tmp/temp.jpg';
if ( imagecopyresized($background, $im, 0, 0, 0, 0, $nw, $nh, $w, $h) )
{
if ( imagejpeg($background, $local_file) )
{
if ( ftp_put($conn_id, $destino, $local_file, FTP_BINARY) )
{
unlink($local_file)
}
}
}