引言

一、PHP图片上传

1.1 前端表单设计

<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="image" />
    <input type="submit" value="上传" />
</form>

1.2 PHP后端处理

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['image'])) {
    // 设置上传目录
    $upload_dir = 'uploads/';
    // 获取上传文件信息
    $file_name = $_FILES['image']['name'];
    $file_tmp = $_FILES['image']['tmp_name'];
    $file_size = $_FILES['image']['size'];
    $file_error = $_FILES['image']['error'];
    $file_type = $_FILES['image']['type'];

    // 判断文件类型
    $allowed_types = array('jpg', 'jpeg', 'png', 'gif');
    if (in_array($file_type, $allowed_types)) {
        // 判断是否有错误
        if ($file_error === 0) {
            // 生成新文件名
            $new_file_name = uniqid() . '.' . strtolower(pathinfo($file_name, PATHINFO_EXTENSION));
            // 移动文件到上传目录
            move_uploaded_file($file_tmp, $upload_dir . $new_file_name);
            echo "上传成功!";
        } else {
            echo "上传失败:错误代码 " . $file_error;
        }
    } else {
        echo "上传失败:不支持的文件类型!";
    }
}
?>

二、FTP传输

2.1 创建FTP连接

使用PHP的ftp_connect函数创建FTP连接:

$ftp_server = 'ftp.yourserver.com';
$ftp_user = 'yourusername';
$ftp_password = 'yourpassword';

$conn = ftp_connect($ftp_server);
if (!$conn) {
    die("FTP连接失败!");
}

if (!ftp_login($conn, $ftp_user, $ftp_password)) {
    die("FTP登录失败!");
}

2.2 上传文件

使用ftp_put函数将文件上传到FTP服务器:

$local_file = 'uploads/new_file.jpg';
$remote_file = 'remote_folder/new_file.jpg';

if (ftp_put($conn, $remote_file, $local_file, FTP_BINARY)) {
    echo "文件上传成功!";
} else {
    echo "文件上传失败!";
}

2.3 关闭FTP连接

上传完成后,关闭FTP连接:

ftp_close($conn);

三、总结