Armazenar arquivos .PDF no MySQL
-
Preciso de uma aplicação que salve arquivos do tipo .pdf em um banco de dados. Criei um campo no banco de dados do tipo BLOB para receber este arquivo, mas não sei como vou passar ele para o banco. Pensei em converte-lo para ByteArray e armazenar no banco, e quando precisar dele faço a conversão de volta para o formato .pdf. Este é um bom caminho? Como posso fazer essa conversão? Existem meios melhores de fazer isso?
Grato.
Aguardo resposta. -
Acredito que o caminho seja esse mesmo.
Um código mais ou menos assim:
void test() { /* .... */ QByteArray byte; QFile file(filename); if(file.open(QIODevice::ReadOnly)) { byte = file.readAll(); file.close(); } }
e depois
query.bindValue(":image", byte, QSql::In | QSql::Binary);
Resolva. Mas tome cuidado com o tamanho do arquivo: o readAll() vai colocar o arquivo inteiro na memória.
-
Certo, consegui fazer funcionar aqui =), minha maior duvida era como conseguir pegar um bytearray e salva-lo em um arquivo pdf, isso resolveu meu problema:
if(arquivo.open(QIODevice::WriteOnly)){ arquivo.write(bytearray); }
Não achava que algo tão simples fosse funcionar, mas enfim, funcionou. Agora é só fazer mais testes para confirmar que não vai dar problema.
Obrigado pela ajuda.