PDF BLOB MYSQL

MESTRE 22/07/2015 09:12:05
#449114
Fala galera beleza? tenho um sistema Desktop e queria integrá-lo a um sistema web, a empresa que eu trabalho envia vários relatórios aos clientes
o relatório já é feito via sistema VB.Net + Crystal Reports, gerando um PDF, que é o relatório final..

Estou pensando em criar um sistema web, pro cliente colocar um Hash code e aparecer o .PDF disponível para Download.. assim o cliente não dependerá
do envio por email do relatório facilitando o processo..

é uma forma segura de eu colocar um Hash Code? ai teria que subir o .pdf no banco ou no site? qual seria o mais seguro?
NICKOSOFT 22/07/2015 14:16:15
#449126
estava num projeto q uma cidade vizinha precisava de relatórios, gerei um pequeno programa pra essa cidade onde acessa o BD e gera os relatórios diretamente....
veja q pro pessoal acessar via internet eles o fazem a qq momento, e um relatório previamente feito e upado ou salvo em qq lugar não vai mostrar a situação real da coisa.....
MESTRE 22/07/2015 14:20:46
#449127
Más então precisaria ter esse controle do funcionário Upar o .PDF ou fazer upload no banco do relatório.. pq nossos produtos são relatórios porque a empresa e prestadora
de serviço..

Precisa ter controle de quais relatórios devem aparecer e quais não devem, no caso queria mesmo que fosse feito assim desse jeito..

Porque em caso de inadimplencia por ex eles seguram o relatório entendeu? e não tem problema não ser mostrada uma situação real..
NICKOSOFT 22/07/2015 14:52:34
#449131
então vc pode fazer assim, vamos imaginar servidor onde os relatórios serão gerados....
a pessoa gera o relatório no servidor, vc gera até um hash pra esse arquivo PDF gerado, e salva o PDF e o hash no banco.....

na web qnd o cliente digitar o hash o sistema busca no BD aquele hash, se encontrar, libera o arquivo ou exibe, ai depende....

esse processo de gerar o relatório, o hash e subir ao BD pode ser automatizado, ficaria pratico....
MESTRE 22/07/2015 15:02:52
#449132
entendi, perfeitamente isso que eu quero.. só que eis a dúvida como subir o pdf no banco?

NICKOSOFT 22/07/2015 15:14:29
#449135
aqui a solução
https://social.msdn.microsoft.com/Forums/pt-BR/7f536850-1a4c-498e-a7d8-66f83796e718/como-salvar-arquivo-pdf-ou-zip-dentro-do-banco-de-dados?forum=vsvbasicpt
MESTRE 23/07/2015 07:11:20
#449145
entendi obrigado vou fazer assim
MESTRE 24/07/2015 11:27:29
#449186
Cara não consegui.. eu preciso subir o .pdf no Mysql online eai quero colocar um botão no meu site em asp.net pra download..
Ja fiz a parte de gerar uma Hash SHA 256..

Agora falta eu subir o pdf no meu banco mysql online e fazer o botão de download..

tentei dessa forma (obs: tenho 2 sistema um web em C# e um WinForms em Vb.Net preciso fazer essa rotina pra subir o pdf no WinForms):
   Dim origStream As New IO.FileStream([Ô]C:\Users\lucas\Desktop\a.pdf[Ô], FileMode.Open, FileAccess.Read)
Dim destStream As New IO.FileStream([Ô]C:\Users\lucas\Desktop\ORIGEM\a.pdf[Ô], FileMode.Create, FileAccess.Write)

Dim reader As New BinaryReader(origStream)
Dim arquivo As Byte() = reader.ReadBytes(Convert.ToInt32(origStream.Length))

Dim writer As New BinaryWriter(destStream)
writer.Write(arquivo)

reader.Close()
writer.Close()
origStream.Close()
destStream.Close()

NICKOSOFT 24/07/2015 13:23:27
#449193
veja consegui gravar o arquivo assim, aproveitei um código q estou fazendo umas brigas com campo date
  
Dim conn As MySqlConnection
conn = New MySqlConnection
conn.ConnectionString = [Ô]server=localhost;user id=root;password=root;database=teste[Ô]
SQL = [Ô]insert into datas (data,arquivo) values (@data,@arquivo)[Ô]
Try
conn.Open()
Try
myCommand.Connection = conn
myCommand.CommandText = SQL

Dim data As Date
data = (Format(DateTimePicker1.Text, [Ô]Short Date[Ô]))
myCommand.Parameters.AddWithValue([Ô]@data[Ô], Format(data, [Ô]yyyy-MM-dd[Ô])) [ô]precisa usar o format em um variavel do tipo date
Dim origStream As New FileStream([Ô]c:\obd.pdf[Ô], FileMode.Open, FileAccess.Read)
Dim reader As New BinaryReader(origStream)
Dim arquivo As Byte() = reader.ReadBytes(Convert.ToInt32(origStream.Length))

myCommand.Parameters.AddWithValue([Ô]@arquivo[Ô], reader)

reader.Close()
origStream.Close()

myCommand.ExecuteNonQuery()
Catch myerro As MySqlException
MsgBox([Ô]Erro na escrita : [Ô] & myerro.Message)
End Try
MessageBox.Show([Ô]Conexão aberta com sucesso[Ô])
conn.Close()
Catch myerro As MySqlException
MESTRE 24/07/2015 13:53:43
#449195
CONSEGUIIIIIIIIIIII


Para gravar no banco em Vb.Net

Dim fs As New IO.FileStream([Ô]C:\Users\lucas\Desktop\a.pdf.pdf[Ô], FileMode.Open, FileAccess.Read)

Dim br As New BinaryReader(fs)

Dim imageBytes As Byte() = br.ReadBytes(CInt(fs.Length))

br.Close()
fs.Close()

sql = [Ô]INSERT INTO tb_logs(Terminal)[Ô] &
[Ô] VALUES(@PDF)[Ô]

Dim objCmd As New MySqlCommand(Sql, objConexao)

objCmd.Parameters.AddWithValue([Ô]@PDF[Ô], imageBytes)

Try
objConexao.Open()
objCmd.ExecuteNonQuery()

Catch ex As Exception
MessageBox.Show(ex.ToString)
Finally
objConexao.Close()
End Try




Para ler o arquivo em Asp.Net no site:
  using (MySqlConnection Con = new MySqlConnection())
{
try
{
Con.ConnectionString = CarregarConStr();
Con.Open();
}
catch (Exception exc)
{
// Mostra o erro!
return;
}
using (MySqlCommand cmd = new MySqlCommand([Ô]SELECT Terminal FROM tb_logs WHERE Codigo=[ô]153[ô][Ô], Con))
{
using (MySqlDataAdapter daSql = new MySqlDataAdapter(cmd))
{
DataTable dtClientes = new DataTable([Ô]tb_logs[Ô]);
daSql.Fill(dtClientes);
byte[] data = (byte[])dtClientes.Rows[0][[Ô]Terminal[Ô]];

Response.Clear();
Response.ContentType = [Ô]application/pdf[Ô];
Response.AddHeader([Ô]content-length[Ô], data.Length.ToString());
Response.BinaryWrite(data);
Response.Flush();
Response.Close();


}
}
}



O unico problema é que meu pdf ta gerando com 2 .pdf, ai tenho que colocar .pdf .pdf..
NICKOSOFT 24/07/2015 14:25:22
#449196
Resposta escolhida
extranhamente sofro desse problema ao exportar PDF pelo botão no CR, se for direto via código não acontece, estranho isso....
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas