代码之家  ›  专栏  ›  技术社区  ›  Alex

通过ftp的Apple DMG文件正在损坏,为什么?

  •  0
  • Alex  · 技术社区  · 16 年前

    我正在尝试用FTP传输一些苹果DMG文件,如果我们通过Safari或IE手工操作,它会在目的地完好无损。但是,如果我使用的是一个免费的ftp客户端,我们已经成功地使用了zip和exe,或者如果我使用了一个我完成的PowerShell脚本(改编自另一个Stackover流的问题答案),那么我会在10.5 MB文件上丢失大约1/2 MB,并且dmg已损坏。有人知道可能出什么问题的线索吗?我能做些什么来阻止它?到目前为止,我所尝试的只是在发送前gzipping DMG,但没有完成任何工作。再说一次,除了DMG以外的任何东西都能正常传输。

    仅供参考,我使用的是二进制模式传输,所以不是这样的。

    3 回复  |  直到 16 年前
        1
  •  1
  •   Marko    16 年前

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

    我一直认为ftp中的ascii传输模式非常愚蠢。它造成的麻烦比它的价值还多。

        2
  •  1
  •   Adam Wright    16 年前

    你确定除了DMG以外的所有东西都被正确传送了吗?听起来传输编码有问题。FTP支持二进制和ASCII传输类型,主要是由于历史行李。在过去,当带宽比较可怕时,去掉高位(ASCII不使用)是一个很好的节省时间的方法。但是,如果您有位集的任何字节,那么ASCII传输模式将丢失它们——因此是“二进制”模式,它不截断任何内容。

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

        3
  •  0
  •   Alex    16 年前

    大家都知道。它一定是我使用的客户机与我的PowerShell脚本有着完全相同的问题。我使用streamreader获取传输字节,它假设编码不正确。我换了一个二进制阅读器,但它没有,现在可以工作了。