What are the limitations of the ftp_put function in PHP when it comes to duplicating files?

The ftp_put function in PHP does not have a built-in method to check for existing files before uploading, which can lead to duplicate files being created. To solve this issue, you can first check if the file already exists on the FTP server using ftp_size or ftp_mdtm functions, and then decide whether to upload the file or not based on the result.

$ftp_server = 'ftp.example.com';
$ftp_user = 'username';
$ftp_pass = 'password';
$file_path = 'local_file.txt';
$remote_file = 'remote_file.txt';

$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);

if (ftp_size($conn_id, $remote_file) == -1) {
    // File does not exist, upload it
    if (ftp_put($conn_id, $remote_file, $file_path, FTP_BINARY)) {
        echo "File uploaded successfully.";
    } else {
        echo "Error uploading file.";
    }
} else {
    echo "File already exists on the server.";
}

ftp_close($conn_id);