0

我正在尝试对一些苹果 DMG 文件进行 FTP 传输,如果我们通过 Safari 或 IE 手动完成,它最终会到达目的地并且完好无损。但是,如果我使用一个免费软件 FTP 客户端,我们一直在为 zip 和 exe 取得巨大成功,或者如果我使用我完成的 Powershell 脚本(改编自另一个 stackover 流的问题的答案),那么我会丢失大约 1/2 Mb一个 10.5 Mb 的文件,并且 dmg 已损坏。有没有人知道可能出了什么问题?我可以做些什么来防止它?到目前为止,我所尝试的只是在发送之前对 dmg 进行 gzip 压缩,但什么也没做。同样,除了 dmg 之外的任何东西都可以很好地传输。

仅供参考,我正在使用二进制模式传输,所以不是这样..thx

4

3 回答 3

1

似乎您的客户将 dmg 文件视为文本文件。在您的 ftp 客户端中设置二进制传输模式,它将按原样进行 ftp。

我一直认为 ftp 中的 ascii 传输模式很愚蠢。它会带来更多的麻烦,然后它是值得的。

于 2008-11-14T12:42:52.483 回答
1

您确定除 DMG 之外的所有内容都正确传输吗?这听起来像是传输编码的问题。FTP 支持二进制和 ASCII 传输类型,主要是由于历史包袱。在过去,当带宽更紧张时,去掉高位(ASCII 不使用)是一个很好的节省时间的方法。但是,如果您有任何设置了位的字节,ASCII 传输模式将丢失它们 - 因此是“二进制”模式,它不会截断任何内容。

通常,切换传输模式的命令是“bin”或“ascii”。

于 2008-11-14T12:43:41.810 回答
0

就这样大家都知道了。一定是我使用的客户端与我的 PowerShell 脚本有完全相同的问题。我正在使用 StreamReader 来获取要传输的字节,并且它假设编码不正确。我切换到了一个没有的 BinaryReader,现在它可以工作了。

于 2008-12-01T16:12:41.713 回答