传输后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\n";
}
else
{
echo "There was a problem while uploading $file\n";
}
};
}
// remember to always close your ftp connection
ftp_close($conn_id);
答
您正在尝试使用
而不是基于文本的文件上传其他内容
(ftp_put($conn_id, $remote_file, $localfile, FTP_ASCII))
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.
旁注:摆脱...no need to re-upload <br />";;