2012-04-14 71 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