我正在尝试FTP一些苹果DMG文件,如果我们手动通过Safari或IE它最终在目的地就好并且没有损坏。但是,如果我使用免费软件FTP客户端,我们一直在使用zip和exe的成功,或者如果我使用Powershell脚本,我完成了(改编自另一个stackover流程的问题的答案)然后我失去了大约1/2 Mb一个10.5 Mb的文件,dmg已损坏。有没有人有任何可能出错的线索?我可以做些什么来阻止它?到目前为止,我所尝试的只是在发送之前对dmg进行gzipping并且没有完成任何事情。再一次,除了dmg以外的任何东西都可以传输得很好。
仅供参考我正在使用二进制模式传输,所以不是......虽然
答案 0 :(得分:1)
好像客户端将dmg文件视为文本文件。 在你的ftp客户端设置二进制传输模式,它将按原样运行。
我一直认为ftp中的ascii传输模式只是简单的愚蠢。它会带来更多麻烦,值得。
答案 1 :(得分:1)
您确定除了DMG之外的所有内容都能正确传输吗?这听起来像传输编码的问题。 FTP支持二进制和ASCII传输类型,主要是由于历史包袱。在过去,当带宽更加严重时,不要使用高位(ASCII不使用)是一个很好的节省时间。但是,如果您设置了任何字节,ASCII传输模式将丢失它们 - 因此“二进制”模式,它不会截断任何内容。
通常,切换传输模式的命令是“bin”或“ascii”。
答案 2 :(得分:0)
大家都知道。它一定是我使用的客户端与我的PowerShell脚本完全相同的问题。我正在使用StreamReader获取传输的字节,并假设编码不正确。我切换到了一个没有的BinaryReader,它现在可以工作了。