Como gravar um arquivo num campo BLOB e como retorna-lo,WEB?

13 respostas
A

Galera blz …

E o seguinte to desenvolvendo um sistema em que tenho uma tabela com um campo BLOB onde eu quero gravar arquivos no formato HTML ou seja num formato de texto, o lema e o seguinte esse sistema e WEB eu to querendo uma maneira de gravar esse HTML no campo BLOB da tabela e depois trasformar esses HTMLs que esta guardado no campo BLOB num HTML visivel ao usuario, não to sabendo como proceder.

da uma luz ai galera : :roll:

13 Respostas

E

Bom, pelo que entendi você não precisa fazer nada de especial, apenas crie um StringBuffer para armazenar o texto normalmente. Através de um SQL “insert” insira no campo Blob e para recuperar o código que já vai estar armazenado no formato HTML você precisa apenas apresentar como parte de um view.

D

“anjomal”:
Galera blz …

E o seguinte to desenvolvendo um sistema em que tenho uma tabela com um campo BLOB onde eu quero gravar arquivos no formato HTML ou seja num formato de texto, o lema e o seguinte esse sistema e WEB eu to querendo uma maneira de gravar esse HTML no campo BLOB da tabela e depois trasformar esses HTMLs que esta guardado no campo BLOB num HTML visivel ao usuario, não to sabendo como proceder.

da uma luz ai galera : :roll:

Nesse site : http://www.javazoom.net/index.shtml tem componentes para efetuar download e upload a partir do browser em campos BLOB, já fiz testes com imagens e pdfs e funcionou muito bem, acredito que isso pode lhe ajudar

A

Alguem pode me dar um exemplo desse javauploadBean ? para fazer upload de um arquivo para WEB para guardar em uma tabela do MYSQL ?

valew

D

“anjomal”:
Alguem pode me dar um exemplo desse javauploadBean ? para fazer upload de um arquivo para WEB para guardar em uma tabela do MYSQL ?

valew

Quando você faz o download desse componente ele já vem com um exemplo de upload no banco de dados (só que é Oracle), inclusive isso é feito em JSP (DatabaseUpload.jsp), aí vai o mesmo arquivo, só que modificado para MySQL (eu improvisei agora, se der errado me avise, pois o que eu fiz na minha casa funcionou perfeitamente)

<html>

<%@ page language=java import=javazoom.upload.<em>,java.util.</em> %>

<%@ page errorPage=ExceptionHandler.jsp %>

<jsp:useBean id=upBean scope=application class=“javazoom.upload.UploadBean >

<%

Properties props = new Properties();

props.put(user,nomedousuario);

props.put(password,senha);

upBean.setDatabasestore(com.mysql.jdbc.Driver,

jdbc:mysql://localhost:3306/nomedobancodedados”, props);

%>

</jsp:useBean>

<jsp:setProperty name=upBean property=overwrite value=true />

<head>

<title>Samples : Database Upload</title>

<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>

</head>

<body bgcolor="#FFFFFF" text="#000000">

<ul><font size="-1" face=Verdana, Arial, Helvetica, sans-serif>

<%

if (MultipartFormDataRequest.isMultipartFormData(request))

{

// Uses MultipartFormDataRequest to parse the HTTP request.

MultipartFormDataRequest mrequest = new MultipartFormDataRequest(request);

String todo = mrequest.getParameter(todo);

if ( (todo != null) && (todo.equalsIgnoreCase(upload)) )

{

Hashtable files = mrequest.getFiles();

if ( (files != null) || (!files.isEmpty()) )

{

UploadFile file = (UploadFile) files.get(uploadfile);

out.println("<li>Form field : uploadfile"+"<BR> Uploaded file : “+file.getFileName()+” ("+file.getFileSize()+" bytes)"+"<BR> Content Type : “+file.getContentType());

// Uses the bean now to store specified by jsp:setProperty at the top.

upBean.store(mrequest, “uploadfile”);

// int lastid = ((DefaultDBStore)upBean.getDatabasestoreimplementation()).getLastId();

}

else

{

out.println(”<li>No uploaded files");

}

}

else out.println("<BR> todo="+todo);

}

Vector history = upBean.getHistory();

int amount = 0;

if (history != null) amount = history.size();

%>

<br><i>(Uploaded files : <%= amount %>)</i>

</font></ul>

<form method=post action=DatabaseUpload.jsp name=upform enctype=multipart/form-data>

<table width=60% border=0 cellspacing=1 cellpadding=1 align=center>

<tr>

<td align=left><font size="-1" face=Verdana, Arial, Helvetica, sans-serif><b>Select

a file to upload :</b></font></td>

</tr>

<tr>

<td align=left><font size="-1" face=Verdana, Arial, Helvetica, sans-serif>

<input type=file name=uploadfile size=50>

</font></td>

</tr>

<tr>

<td align=left><font size="-1" face=Verdana, Arial, Helvetica, sans-serif>

<input type=hidden name=todo value=upload>

<input type=submit name=Submit value=Upload>

<input type=reset name=Reset value=Cancel>

</font></td>

</tr>

</table>

<br>

<br>

<table width=90% border=0 cellspacing=1 cellpadding=0 align=center>

<tr>

<td bgcolor="#666666">

<table width=100% border=0 cellspacing=1 cellpadding=0 align=center>

<tr>

<td bgcolor="#FFFFFF"><font size="-1" face=Verdana, Arial, Helvetica, sans-serif><b><font color="#0000FF">&nbsp;Needed

HTML tags :</font></b></font></td>

</tr>

<tr>

<td bgcolor="#FFFFFF"><font size="-1" face=Verdana, Arial, Helvetica, sans-serif>&nbsp;&lt;<b>form</b>

<b>method</b>="<b><font color="#FF0000">post</font></b>"

<b>action</b>="<b><font color="#FF0000">DatabaseUpload.jsp</font></b>"

name="upload" <b>enctype</b>="<b><font color="#FF0000">multipart/form-data</font></b>"&gt;</font></td>

</tr>

<tr>

<td bgcolor="#FFFFFF"><font size="-1" face=Verdana, Arial, Helvetica, sans-serif>&nbsp;&lt;<b>input</b>

<b>type</b>="<b><font color="#FF0000">file</font></b>"

<b>name</b>="<font color="#FF0000"><b>uploadfile</b></font>"

size="50"&gt;</font></td>

</tr>

</table>

</td>

</tr>

</table>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p align=center>&nbsp;</p>

<p align=center>&nbsp;</p>

<p align=center>&nbsp;</p>

<p align=center><font size="-1" face=Courier New, Courier, mono>Copyright

&copy; <a href=<a href="http://www.javazoom.net">http://www.javazoom.net</a>” target="_blank">JavaZOOM</a> 1999-2003</font></p>

</form>

</body>

</html>
D

Só lembrando que esse é o script de criação da tabela no MySQL :

-----------------------------------------------------------------

** Creates MySQL table to store binary files **

** **

** UploadBean/MySQL sample script. **

** http://www.javazoom.net/jzservlets/uploadbean/uploadbean.html **

** Copyright JavaZOOM 1999-2002. **

-----------------------------------------------------------------

DROP TABLE UPLOADS;

CREATE TABLE UPLOADS (

UPLOADID INT NOT NULL,

FILENAME VARCHAR(255),

BINARYFILE LONGBLOB,

PRIMARY KEY (UPLOADID)

);

A tabela default dele é a uploads, se você quiser gravar em outra tabela basta você atribuir um valor ao atributo estático SQLUPLOADTABLE
na classe UploadBean.

D

Não é legal colocar esse código numa JSP, pretendo escrever uma classe Action e colocar esse processamento de upload dentro dela, fora que vou utilizar o pool de conexões do Tomcat, acho que vou fazer isso sábado na Faculdade, já que estou utilizando esse componente no meu projeto de conclusão de curso.

E

muito legal esse componente de upload.
só não entendi que código tirar do JSP pois você já está tralhando com Beans!

D

“EddiE”:
muito legal esse componente de upload.
só não entendi que código tirar do JSP pois você já está tralhando com Beans!

Na verdade eu vou retirar todo o código (ele utiliza scriptlets :frowning: ), inclusive os beans :lol: , toda a lógica de processamento e instanciamento dos beans vou colocar na classe Action, vou deixar o JSP só para entrada de dados e visualização do resultado do upload

U

pela classe action, parece que você ta usando struts, então da uma olhada no campo tipo FormFile, o struts ja vem prontinho para fazer uploads :slight_smile:

D

Valeu, eu já tinha visto esse esquema, inclusive no struts ele já vem com um exemplo de Upload, só que eu não estou utilizando Struts, tanto a Servlet controladora (FrontController) como as classes Action é uma solução própria (eu peguei um pouco da idéia de struts e um pouco do Java Blue Prints)

L

E ae galera…

Seguinte, também vou utilizar o UploadBean do Javazoom, porém minha tabela é diferente da tabela que ele especifica, alguém já passou por isso também, gostaria de saber o que devo alterar…

Valeu.

L

Esse é a resposta para dúvida que tinha.
Caso alguém esteja passando pelo mesmo problema que o meu, pode colocar assin que funciona…

Valeu galera… :wink:

M

OPA!
E aí gente!
Olha só sou iniciante em java :shock:
Coloquei essa parada aí em teste, só que não tenho a mínima idéia de como retornar o que inseri no banco…
Alguém pode me dar um help?
Grato!

Criado 9 de abril de 2003
Ultima resposta 22 de set. de 2006
Respostas 13
Participantes 6