質問

いくつかのApple DMGファイルをFTPで送信しようとしていますが、SafariまたはIEを使用して手動で送信すると、目的の場所で正常に破損しません。ただし、zipやexeで大成功して使用していたフリーウェアFTPクライアントを使用する場合、または終了したPowershellスクリプトを使用する場合(別のスタックオーバーフローの質問の回答から適応)、約1/2 Mbを失う10.5 Mbファイルとdmgが破損しています。誰が間違っている可能性がありますか?それを防ぐためにできることは?これまでのところ、送信する前にdmgをgzipするだけで、何も達成できませんでした。繰り返しになりますが、dmg以外は問題なく送信されます。

FYIバイナリモード転送を使用しているので、.. thxではありません

役に立ちましたか?

解決 3

ご存知の通り。私が使用していたクライアントは、PowerShellスクリプトとまったく同じ問題を抱えていたに違いありません。 StreamReaderを使用して転送用のバイトを取得し、エンコードが正しくないと想定していました。動作しないBinaryReaderに切り替えましたが、動作するようになりました。

他のヒント

クライアントがdmgファイルをテキストファイルとして扱うようです。 FTPクライアントでバイナリ転送モードを設定すると、そのままFTPで転送されます。

ftpでのASCII転送モードは単なる愚かだといつも思っていました。それは価値があるより多くのトラブルを引き起こします。

DMG以外はすべて正しく転送されますか?転送エンコードの問題のようです。 FTPは、主に歴史的な荷物により、バイナリとASCIIの両方の転送タイプをサポートしています。昔は、帯域幅がひどかったので、高ビット(ASCIIは使用しません)を省くことで時間を節約できました。ただし、ビットが設定されたバイトがある場合、ASCII転送モードではそれらが失われます-したがって、「バイナリ」はモード。何も切り捨てません。

通常、転送モードを切り替えるコマンドは「bin」です。または" ascii"。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top