php - 调整图像大小并通过ftp上传

时间:2011-07-26 10:55:32

标签: php

尝试重新采样一个图像并通过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

3 个答案:

答案 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)
        }
    }
}