Você já respondeu, mas acho que posso fazer melhor que Apparently certain types of files need to be uploaded in binary
.
Primeiro, algumas pequenas informações básicas:
1: Computadores, bits e bytes.
A menor parte da informação em um computador é um pouco. Um bit é verdadeiro ou falso,) ou 1, alta voltagem ou terra, ...
Os bits são agrupados em pequenos conjuntos. Para quase todos os computadores modernos em grupos de oito. Nós chamamos isso de byte.
Um conjunto de 8 bits / 1 bytes, pode ter 256 valores diferentes, a partir do
00000000 significado 0
00000001 significado 1
00000010 significado 2
00000011 significando 3 (ambos 2 + 1 são definidos)
00000100 significado 4
...
11111111 significado 255
2: ASCII.
ASCII é um conjunto de 128 caracteres, numerados de 0 a 127. Você só precisa de 7 bits para isso. Nos velhos tempos, isso era tudo o que você precisava para se comunicar. Apenas a letra regular de 26 no alfabeto ocidental, o número de 0 a 9 e alguns códigos especiais aparecem como 7: Toque a campainha ou bipe.
Hoje em dia definimos muito mais personagens. Nós usamos UTF-16 e unicode, permitindo idioma chinês, japonês, da direita para a esquerda, etc. etc. nos velhos tempos nós ainda não tínhamos apoio para isso em lugares comuns.
3: Por último: a largura de banda é / era cara.
Enviamos todos os 8 bits de um bit para um destino quando você sabe que só precisa de 7 deles para representar o texto? Se você fizer as coisas de uma maneira inteligente, você pode economizar 1/8 de largura de banda.
Isso pode não parecer tanto para uso hoje, mas na época em que a Europa para os EUA conectou uma linha de discagem de 1200 bauds (ou seja, cerca de 0,1 KB / s!) ajudou um pouco.
Então, suponha que eu queira escrever "Olá".
Eu posso procurar isso na tabela ASCII e descobrirei que seu computador armazenaria isso em quatro bytes contendo:
H e l l o
01001000 01100101 01101100 01101100 01101111
Note que os primeiros bits de todas as letras são 0. Eu também lembro dessa parte:
H e l l o
1001000 1100101 1101100 1101100 1101111
O primeiro exemplo tem 32 bits (4 bytes, cada 8 bits de informação). O segundo exemplo tem apenas 28 bits. É mais eficiente.
Isso torna o método preferido de transferência de texto. No entanto, deixando de fora o primeiro bit vai quebrar tudo o que não é texto. Assim, o protocolo FTP foi projetado com duas opções: modo ASCII (eficiente para texto) e modo BINARY (transferência como está).
OK, com tudo o que se sabe:
Você transferiu arquivos binários (por exemplo, PDFs) no modo ASCII, que não transmitiu todas as informações. Assim, os arquivos resultantes chegaram mutilados no destino
Para transferir qualquer coisa, exceto o texto antigo, use o comando 'bin' no prompt do FTP ou marque a opção 'bin' de usar uma GUI.
Espero que responda o "O que está acontecendo aqui?" :)