【问题标题】:How to upload large file(s) on FTP server using php?如何使用 php 在 FTP 服务器上上传大文件?
【发布时间】:2012-04-14 12:11:12
【问题描述】:
$ftp_server = 'ftp.abc.com';
$remote_file = "myvideo.avi";  // file size 210MB
$file = "myvideo.avi";        // file size 210MB
$conn_id = ftp_connect($ftp_server);  // set up basic connection

// login with username and password
$login_result = ftp_login($conn_id, 'faraz@abc.com', 'password');

ftp_pasv($conn_id, true); // turn passive mode on
// upload a file
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
     echo "successfully uploaded $file\n";
} else {
     echo "There was a problem while uploading $file\n";
}
    // close the connection
    ftp_close($conn_id);

i already edit php.in for
upload_max_filesize = 1024M

以上 sn-p 处理所有类型的文件上传,
但是当我尝试上传大文件时,它会上传到服务器上,但上传后大小会有所不同。
本地计算机上的视频文件大小为 210MB
但上传后,它在 FTP 服务器上显示文件大小为 328KB。
我不知道我在哪里检查,如果有人有建议,那么我很感激

【问题讨论】:

  • 好的,我会的。但我都接受了。
  • 不,您可能只是对答案投了赞成票,但没有接受。有关如何执行此操作,请参阅上一条评论中的我的链接。哦,你根本不应该使用FTP_ASCII。现在通常没有充分的理由使用它,对于二进制文件,它甚至会破坏它们!
  • 哦,我明白了,我现在每次都会这样做。

标签: php file-upload ftp


【解决方案1】:

使用FTP_BINARY 代替FTP_ASCII。后者可能会在第一个 NUL 字节处停止。

除此之外,现在没有充分的理由使用 ascii 模式,即使是 ascii 文件也是如此。 唯一的情况是,如果您的 cgi 脚本包含 shebang 行且本地有 windows 换行符,那么这一点很重要。

【讨论】:

  • 如何检查 ftp 服务器名称是否有效?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
  • 2011-01-06
  • 1970-01-01
  • 2014-03-22
  • 1970-01-01
相关资源
最近更新 更多