olá pessoal, estou com o seguinte problema quero fazer um upload de um arquivo guardar ele no form e depois salvar como BLOB no banco de dados.
estou fazendo o upload da seguinte forma.
public ActionForward uploadArquivo(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
BuscaDocumentoForm uploadForm = getCastedForm(form);
FileOutputStream outputStream = null;
FormFile formFile = null;
try {
formFile = uploadForm.getDocumento();
String path = getServlet().getServletContext().getRealPath("")+"/"+ formFile.getFileName();
outputStream = new FileOutputStream(new File(path));
outputStream.write(formFile.getFileData());
como posso gravar no Banco?
Se estiver usando JDBC puro: http://javafree.uol.com.br/artigo/851262/Manipulando-campos-BLOB-e-CLOB-com-JDBC.html
Se for hibernate pesquise sobre mapeamento byte[] x BLOB.
Eu já vi esse exemplo e não entendi muito bem porque ele escreve o arquivo no outputStream?
O upload é um exemplo que eu peguei na internet e nesse upload ele usa FormFile e no exemplo para salvar no banco ele usa File.
Não sei se fui claro. No momento do upload do arquivo eu tenho isso:
BuscaDocumentoForm uploadForm = getCastedForm(form);
FileOutputStream outputStream = null;
FormFile formFile = null;
try {
formFile = uploadForm.getDocumento();
String path = getServlet().getServletContext().getRealPath("")+"/"+ formFile.getFileName();
outputStream = new FileOutputStream(new File(path));
outputStream.write(formFile.getFileData());
a partir desse upload não consigo pegar o arquivo para gravar no banco.
consegui gravar assim:
FormFile file = form.getDocumento();
Integer fileSize = file.getFileSize();
InputStream inputFile = file.getInputStream();
pstmt.setBinaryStream(6, inputFile, fileSize);