2012-04-14 70 views
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, '[email protected]', '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 

片断工作对所有类型的文件(S)上传,
但是当我试图上传大尺寸文件,然后上传在服务器上,但尺寸上传后变化。
本地机上的视频文件大小为210MB
但上传后,它在FTP服务器上显示的文件大小为328KB。
我不知道我在哪里可以检查,如果有人有意见的话,我赞赏 如何使用php在FTP服务器上上传大文件?上述

+0

好的,我会的。但我已经接受了所有。 – Frank 2012-04-14 12:36:40

+0

不,你可能只是提出了答案,但没有接受它们。请参阅以前评论中的链接以了解如何操作。哦,你根本不应该使用FTP_ASCII。现在通常没有理由使用它,对于二进制文件,它甚至会破坏它们! – ThiefMaster 2012-04-14 12:52:17

+0

噢,我明白了,我现在每次都会这样做。 – Frank 2012-04-16 05:24:37

回答

5

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

除此之外,现在没有很好的理由使用ascii模式,即使是ascii文件。仅在这种情况下,如果您的cgi脚本包含本地具有windows换行符的shebang行,这一点很重要。

+0

我该如何检查ftp服务器名称是否有效? – Frank 2012-04-18 10:31:19