Pergunta

Eu estou tentando criar e recuperar um BLOB em uma tabela MySQL via biblioteca ORM do Kohana.

O código é algo como:

$attachment = new Attachment_Model();
$attachment->name = $info['FileName'];
$attachment->size = strlen($info['Data']);
$attachment->data = $info['Data'];
$attachment->mime_type = $info['content-type'];
$attachment->save();

eu tenho verificado que os dados são OK neste ponto pela saída para um arquivo. No entanto, quando eu recuperar os dados que sai corrompido. Eu consegui estreitar esse baixo um pouco mais - Eu usei a ferramenta de consulta MySQL para extrair os dados como mantido no banco de dados e eu posso verificar se os dados no banco de dados está corrompido, então o problema deve estar na INSERIR .

Além disso, os arquivos inseridos nem sempre são corruptos - arquivos menores (como imagens) tendem a ser OK

.

Alguém tem alguma idéia?

Foi útil?

Solução

Acontece que, neste caso, eu estava usando o tipo de dados BLOB.

Os dados BLOB tipo de dados Truncates em 65535 caracteres (silenciosamente, sem lançar um erro!)

Eu levantei-lo para um MEDIUMBLOB (que tem um comprimento máximo de 16777215 caracteres), e parece trabalho OK!

Outras dicas

palpite, mas: provavelmente porque a camada de modelo kohana insere todos os dados como dados de caracteres em vez de binário, o que fará com que você incomoda ao salvar / recuperar objetos BLOB

.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top