我正在尝试使用 Perl 将文件发送到 FTP 服务器。程序运行良好,但文件大小发生了变化(远程主机上的文件大小与本地主机上的文件大小不同)。经过检查,我意识到:这不是我的 Perl 脚本的错误,而是 FTP 客户端的错误。
假设:我有一台电脑(A) 运行 Cent-Os 5. 我想发送一个 wav 文件 (802_20130511_111637.wav- 207,084 字节)传输到远程计算机(乙)。(B)上的 FTP 服务器是 File Zillar 0.9.41。
我从(A)控制台执行了以下命令(为了安全起见,我更改了主机名和用户名):
[root@abcxyz 1234]# ls -l
total 464
-rw------- 1 asterisk asterisk 99564 May 8 10:39 0913255236_20130508103929.wav
-rw------- 1 asterisk asterisk 127084 May 7 22:42 0918272810_20130507224217.wav
-rwxrwxrwx 1 asterisk asterisk 16488 May 7 16:45 1234.wav
-rw-r--r-- 1 asterisk asterisk 207084 May 11 11:17 802_20130511_111637.wav
[root@abcxyz 1234]# ftp
ftp> open xxx.xxx.xxx.xxx
Connected to xxx.xxx.xxx.xxx.
220 FileZilla Server version 0.9.41 beta
502 GSSAPI authentication not implemented
504 Auth type not supported
KERBEROS_V4 rejected as an authentication type
Name (xxx.xxx.xxx.xxx:root): my_user_name
331 Password required for my_user_name
Password:
230 Logged on
Remote system type is UNIX.
ftp> put 802_20130511_111637.wav
local: 802_20130511_111637.wav remote: 802_20130511_111637.wav
227 Entering Passive Mode (xxx,xxx,xxx,xxx,195,159)
150 Connection accepted
226 Transfer OK
207503 bytes sent in 0.029 seconds (7.1e+03 Kbytes/s)
ftp>
如您所见。文件大小(第 6 行)为 207084 字节。但大小(几乎最后一行)为 207503 字节。
没错,文件大小在通过 FTP 发送后发生了变化。我已将上述两个文件(一个来自 (A),一个来自 (B))下载到另一台 PC(运行 Windows)。来自 (A) 的文件可以正常播放,但来自 (B) 的文件则不能。
如果我做错了,请纠正我。为什么虽然我使用了原生 FTP 客户端,但文件大小还是发生了变化?
答案1
您从未发出过bin
命令(或您的客户端使用的任何命令),因此它正在执行行尾翻译。