ftp_put 在传输后损坏了我的电影,是不是错了?

2023-10-31php开发问题
0

本文介绍了ftp_put 在传输后损坏了我的电影,是不是错了?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我有一堆电影正试图从我的 CentOS 服务器传输到我的 Windows PC 上.但是当我通过这个脚本运行它们时,它们最终会被破坏.脚本有问题吗?

I have a bunch of movies that I'm trying to transfer from my CentOS server onto my Windows PC. But when I run them through this script they end up being corrupt. Is there something wrong with the script?

谢谢

$allFiles = glob("/var/www/html/ftp_pending/*");

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

foreach($allFiles as $singleFile)
{
    // check if a file exist
    $path = "/"; //the path where the file is located

    $file = substr( $singleFile, strrpos( $singleFile, '/' )+1 );

    $check_file_exist = $path.$file; //combine string for easy use

    // Returns an array of filenames from the specified directory on success or
    // FALSE on error. 
    $contents_on_server = ftp_nlist($conn_id, $path); 

    // Test if file is in the ftp_nlist array
    if (in_array($check_file_exist, $contents_on_server)) 
    {
        echo "$file is already on FTP Server, no need to re-upload <br />";
    }
    else
    {
        $localfile = '/var/www/html/'.$file.'';
        $remote_file = $file;
        
        // upload a file
        if (ftp_put($conn_id, $remote_file, $localfile, FTP_ASCII))
        {
             echo "successfully uploaded $file
";
        }
        else
        {
             echo "There was a problem while uploading $file
";
        }
    };

}
        
// remember to always close your ftp connection
ftp_close($conn_id);

推荐答案

您在使用时尝试上传非文本文件

You're trying to upload something other than a text-based file while using

(ftp_put($conn_id, $remote_file, $localfile, FTP_ASCII))

您应该使用 FTP_BINARY 而不是 FTP_ASCII,因为电影(和图像)是二进制文件.

You should be using FTP_BINARY instead of FTP_ASCII since movies (and images) are binary files.

这篇关于ftp_put 在传输后损坏了我的电影,是不是错了?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

PHP实现DeepL翻译API调用
DeepL的翻译效果还是很强大的,如果我们要用php实现DeepL翻译调用,该怎么办呢?以下是代码示例,希望能够帮到需要的朋友。 在这里需要注意,这个DeepL的账户和api申请比较难,不支持中国大陆申请,需要拥有香港或者海外信用卡才行,没账号的话,目前某宝可以...
2025-08-20 php开发问题
168

PHP通过phpspreadsheet导入Excel日期数据处理方法
PHP通过phpspreadsheet导入Excel日期,导入系统后,全部变为了4开头的几位数字,这是为什么呢?原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为: 要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的...
2024-10-23 php开发问题
287

mediatemple - 无法使用 codeigniter 发送电子邮件
mediatemple - can#39;t send email using codeigniter(mediatemple - 无法使用 codeigniter 发送电子邮件)...
2024-08-23 php开发问题
11

Laravel Gmail 配置错误
Laravel Gmail Configuration Error(Laravel Gmail 配置错误)...
2024-08-23 php开发问题
16

将 PHPMailer 用于 SMTP 的问题
Problem with using PHPMailer for SMTP(将 PHPMailer 用于 SMTP 的问题)...
2024-08-23 php开发问题
4

关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题
Issue on how to setup SMTP using PHPMailer in GoDaddy server(关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题)...
2024-08-23 php开发问题
17