Ich habe eine 100-KB-PDF-Datei, die wir anrufen werden Test.pdf
. Ich verwende FTP, um Test.pdf
meine Website zu veröffentlichen. Die PDF-Datei ist jedoch beschädigt, wenn sie auf der Website eingeht. Also lief ich als diagnostischer Test:
$ md5sum Test.pdf
[md5sum a]
$ [ftp upload Test.pdf]
$ [ftp download Test.pdf]
$ md5sum Test.pdf
[md5sum b]
Irgendwann beim Hochladen wird die Datei beschädigt! Das verwirrt mich. Ich hatte dieses Problem noch nie mit einem anderen Dateityp. Ich habe auch versucht, den manuellen Upload-Client meines Website-Anbieters zu verwenden, bin jedoch auf dasselbe Problem gestoßen. Was ist hier los?
Antworten:
Du hast selbst schon geantwortet, aber ich denke, ich kann es besser als
Apparently certain types of files need to be uploaded in binary
.Zuerst ein paar kleine Hintergrundinformationen:
1: Computer, Bits und Bytes.
Der kleinste Teil der Informationen in einem Computer ist ein bisschen. Ein Bit ist entweder wahr oder falsch,) oder 1, Hochspannung oder Masse, ...
Die Bits sind in kleine Gruppen zusammengefasst. Für fast alle modernen Computer in Achtergruppen. Wir nennen das ein Byte.
Ein Satz von 8 Bits / 1 Byte kann 256 verschiedene Werte haben, beginnend mit
00000000 für 0
00000001 für 1
00000010 für 2
00000011 für 3 (beide 2 + 1 sind gesetzt)
00000100 für 4
...
11111111 für 255
2: ASCII.
ASCII ist ein Satz von 128 Zeichen, nummeriert von 0 bis 127. Sie benötigen dafür nur 7 Bits. An alten Tagen war das alles, was Sie für die Kommunikation brauchten. Nur der reguläre Buchstabe 26 im Western Alfabet, die Zahlen 0 bis 9 und einige Sondercodes werden mit 7 angezeigt: Klingeln oder Signalton.
In diesen Tagen definieren wir viel mehr Zeichen. Wir verwenden UTF-16 und Unicode und erlauben Chinesisch, Japanisch, von rechts nach links usw. Früher hatten wir noch keine Unterstützung dafür.
3: Zuletzt: Bandbreite ist / war teuer.
Wir senden alle 8 Bits eines Bits an ein Ziel, wenn Sie wissen, dass Sie nur 7 davon benötigen, um den Text darzustellen? Wenn Sie die Dinge auf intelligente Weise erledigen, können Sie 1/8 der Bandbreite einsparen.
Das hört sich heute vielleicht nicht so viel an, aber in der Zeit, als die Europa-zu-USA-Verbindung eine 1200-Baud-Einwahlleitung (das sind ungefähr 0,1 KB / s!) War, hat jedes bisschen geholfen.
Angenommen, ich möchte "Hallo" schreiben.
Ich kann das in der ASCII-Tabelle nachschlagen und ich werde feststellen, dass Ihr Computer das in vier Bytes speichern würde, die dies enthalten:
Beachten Sie, dass die ersten Bits aller Buchstaben 0 sind. Ich kann mich genauso gut an diesen Teil erinnern:
Das erste Beispiel hat 32 Bits (4 Bytes, jeweils 8 Informationsbits).
Das zweite Beispiel hat nur 28 Bits. Es ist effizienter.
Dies macht es zur bevorzugten Methode zum Übertragen von Text. Wenn Sie jedoch das erste Bit weglassen, wird alles zerstört, was kein Text ist. Daher wurde das FTP-Protokoll mit zwei Optionen entworfen: ASCII-Modus (effizient für Text) und BINary-Modus (Übertragung wie sie ist).
OK, bei allem was bekannt ist:
Sie haben Binärdateien (z. B. PDFs) im ASCII-Modus übertragen, bei denen nicht alle Informationen übertragen wurden. Dadurch sind die resultierenden Dateien am Zielort verstümmelt angekommen
Verwenden Sie den Befehl 'bin' an der FTP-Eingabeaufforderung oder aktivieren Sie die Option 'bin', wenn Sie eine grafische Benutzeroberfläche verwenden möchten, um nur alten Text zu übertragen.
Ich hoffe das beantwortet die Frage "Was ist hier los?" :)
quelle
Das Problem war , dass ich das Hochladen
Test.pdf
inascii mode
, nichtbinary mode
. Anscheinend müssen bestimmte Dateitypen (z. B. .pdf, .zip) im Binärmodus und nicht im ASCII-Modus hochgeladen werden. (Dies hat vermutlich etwas mit der Systemebene Darstellung der Datei zu tun.) Das leicht durch Ändern des Upload-Modus festgelegt wurde ftp binär, mit dem Befehlbinary
, wie zum Beispiel:Hier ist eine hilfreiche Referenz.
quelle