使用以下脚本,我将 gif 上传到我的 ftp 服务器。脚本似乎可以工作,但当我尝试在浏览器中访问图像时,它们就坏了。知道为什么吗?
#!/bin/sh
HOST='myftp'
USER='mylogin'
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $1
put $2
quit
END_SCRIPT
exit 0
答案1
您的图像以网络 ASCII 模式而不是二进制模式上传。
网络 ASCII 模式在传输文本文件(纯文本、HTML 等)时非常有用。例如,如果您将文本文件从运行 Windows 的客户端传输到运行 Linux 的服务器,它会自动将所有 Windows 换行符 ( 13 10
) 转换为 Unix 换行符 ( 10
) 并添加尾随文件结束符 ( 10
)。
显然,这会在传输图像等二进制文件时导致文件损坏。
要切换到二进制模式,请先执行以下命令put
:
binary
从FTP 服务器:
ascii Set the file transfer type to network ASCII.
This is the default type.
binary Set the file transfer type to support binary image transfer.