3
$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

上面的代码片段适用于所有类型的文件上传,
但是当我尝试上传大文件时,它会上传到服务器上,但上传后大小会有所不同。
本地机器上的视频文件大小为 210MB,
但上传后,它在 FTP 服务器上显示文件大小为 328KB。
我不知道我在哪里检查,如果有人有建议,那么我很感激

4

1 回答 1

5

使用FTP_BINARY而不是FTP_ASCII. 后者可能会在第一个 NUL 字节处停止。

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

于 2012-04-14T12:54:11.153 回答