Gravar arquivo em um Campo BLOB (MySQL)

0 respostas
ecarmo

Galera,

Eu não sei pq raios isso ta acontecendo mas ta acontecendo, é o seguinte :

Eu to tentando ler um arquivo qualquer e gravar ele em uma base de dados MySQL estou gravando em um campo tipo BLOB, gravar eu consigo, só que ai acontece a merda, eu só consigo gravar 64KB :(

Eu tento gravar arquivos com mais que 3MB e ele só grava 64KB !!!!

Alguém tem alguma idéia do que pode estar acontecendo ???

Class.forName("com.mysql.jdbc.Driver");
// Cria uma Conexao a Base de Dados
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/teste");
			
// Prepara a Query para ser executada
PreparedStatement pstmt = con.prepareStatement("INSERT INTO arquivos (nomeArquivo, arquivo) VALUES (?,?)");
			
// Pega o Arquivo
File arquivo = new File("Pennywise - Alien.mp3");
InputStream arquivoInputStream = new FileInputStream(arquivo); 
			
System.out.println(arquivo.length());
			
			
// Atualiza a query
pstmt.setString(1, arquivo.getName());
pstmt.setBinaryStream(2, arquivoInputStream, (int)arquivo.length());
			
// Executa a Query
pstmt.executeUpdate();
			
			
// Agora le o Arquivo da Base e Grava com outro nome !!!!
			
PreparedStatement lerarquivo = con.prepareStatement("SELECT nomeArquivo, arquivo FROM arquivos WHERE Id = 1");
ResultSet rs = lerarquivo.executeQuery();
			
rs.next();
			
System.out.println("Nome do Arquivo : " + rs.getString("nomeArquivo"));
System.out.println("Recuperando Arquivo !!!!");
			
// Gera o Arquivo no HD
InputStream arquivoBase = rs.getBinaryStream("arquivo");
			
// Cria um Buffer
byte[] buffer = new byte[32*1024]; // Buffer 32 kb 
			
// Cria no HD o Arquivo
OutputStream arquivoHD = new FileOutputStream("teste_mp3.mp3");
			
// Le a quantidade permitida pelo buffer
int bytesLidos = arquivoBase.read(buffer);
			
// Loop ate terminar de recupar todo o arquivo
while (bytesLidos > 0){
	arquivoHD.write(buffer, 0, bytesLidos);
	bytesLidos = arquivoBase.read(buffer);
	System.out.println("--" + bytesLidos);
}
			
System.out.println("Arquivo Recuperado Com sucesso : teste_mp3.mp3");
Criado 13 de maio de 2004
Respostas 0
Participantes 1