Cria um arquivo zip, a partir da string

0

Estou baixando um arquivo zip da internet e recebo como uma string de texto simples. Agora quero salvar isso no disco, mas como converter essa string de texto em um buffer de arquivo? O que é necessário ser feito para que esta string possa ser usada em uma função de gravação do sistema de arquivos?

EDITAR:

O problema quando escrevo os dados diretamente no disco é que o arquivo zip fica corrompido.

O tamanho do arquivo baixado é de 34712 bytes, no entanto, quando eu o salvo diretamente no disco, ele obtém o tamanho de 64760 bytes.

As primeiras 5 linhas dos arquivos:

The new created file as binary:
504b 0304 1400 0200 0800 47fd 3a3d 3efd
fd57 fd5b 0000 006a 0000 0c00 0000 6963
6f6e 7365 7874 2e65 7865 fdfd 7758 fd4b
1738 fdfd fdfd 2424 fa63 fdfd 4140 fd45
5a30 4840 6a28 2140 0811 1240 050c fd05

The new created file as utf8:
504b 0304 1400 0200 0800 47ef bfbd 3a3d
3eef bfbd efbf bd57 efbf bd5b 0000 006a
0000 0c00 0000 6963 6f6e 7365 7874 2e65
7865 efbf bdef bfbd 7758 efbf bd4b 1738
efbf bdef bfbd efbf bdef bfbd 2424 f48e


Original noncorrupted file from the internet:
504b 0304 1400 0200 0800 4799 3a3d 3eae
b857 865b 0000 006a 0000 0c00 0000 6963
6f6e 7365 7874 2e65 7865 edfd 7758 934b
1738 8abe e981 2424 f48e a1a3 b4d0 4140
e945 5a30 4840 6a28 2140 0811 1240 050c
    
por richie 11.03.2014 / 13:12

2 respostas

0

Então eu encontrei uma solução primeiro convertendo a string em um Uint8 e a partir daí convertendo-a em um buffer de arquivo que eu poderia salvar.

    
por 13.03.2014 / 02:58
0

Por que você não pode simplesmente baixar o arquivo?

Se você insistir em fazer o download do stream, apenas redirecione o que está recebendo para o arquivo, então:

* nix:

output_of_download_command > /path/to/file_name.zip

Windows:

output_of_download_command > c:\path\to\file_name.zip

Lembre-se, você pode ter alguma informação extra antes e / depois da sequência real! Sem saber exatamente o que você está fazendo, é impossível dar um comando específico, mas você pode redirecionar todos os erros para um lugar diferente:

Por favor, veja aqui:

link

    
por 11.03.2014 / 13:25

Tags