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

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:

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.

[quote=“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:[/quote]

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

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

valew

[quote=“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[/quote]

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.,java.util.” %>
<%@ 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>=&quot;<b><font color="#FF0000">post</font></b>&quot;
<b>action</b>=&quot;<b><font color="#FF0000">DatabaseUpload.jsp</font></b>&quot;
name=&quot;upload&quot; <b>enctype</b>=&quot;<b><font color="#FF0000">multipart/form-data</font></b>&quot;&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>=&quot;<b><font color="#FF0000">file</font></b>&quot;
<b>name</b>=&quot;<font color="#FF0000"><b>uploadfile</b></font>&quot;
size=&quot;50&quot;&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=“http://www.javazoom.net” target="_blank">JavaZOOM</a> 1999-2003</font></p>
</form>
</body>
</html>

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.

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.

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

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

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

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:

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)

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.

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:

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!