Upar Arquivo de Imagem

0 respostas
Salax

Boa tarde,

Estou desenvolvendo um webSite que sera usado para upado noticias de forma dinâmica, porém muito simples. Tentarei ser detalhista na explicação para fácil entendimento, e assim, poder ter a sua ajuda. =)

Itens para upar:

*Titulo;
*Imagem;
*Conteúdo.

Todos devem ser guardados no banco de dados(mysql), e recuperados posteriormente para ser exibido em várias partes do webSite. PS: A imagem também deve ser guardada no banco e não em uma pasta do servidor, garantindo a integridade.

Os dados a serem preenchidos no form:

<form name="cpanel" id="contactForm" action="ServletCadastroNoticia" method="post">
            <fieldset>
		<div>
                    <label>Titulo da Publicação</label>
                    <input name="titulo"  id="titulo" type="text" class="form-poshytip" title="Informe o titulo" onchange="limpar();"/>
                    <div class="limpa" id="lTitulo"></div>
		</div>
		<div>
                    <label>Enviar imagem</label>
                    <input name="arquivo"  id="arquivo" type="file" class="form-poshytip" accept="image/jpeg; image/gif; image/bmp; image/png" title="Selecione a imagem" onchange="limpar();"/>
                    <div class="limpa" id="larquivo"></div>
                </div>
		<div>
                    <label>Conteúdo da Publicação</label>
                    <textarea  name="conteudo"  id="conteudo" rows="25" cols="20" class="form-poshytip" title="Digite o conteúdo" onchange="limpar();"></textarea>
                    <div class="limpa" id="lconteudo"></div>
		</div>
                <div>
                    <input type="button" name="btcadastrar" value="Enviar" onclick="cadNoticia(document.forms[0]);document.getElementById('titulo').focus();"/>
                    <input style="margin-left: 25px" type="reset" name="btLimpar" value="Novo" onclick="limpar();document.getElementById('titulo').focus();" />
                </div>
<div><input type="hidden" name="donoDaMensagem" id="donoDaMensagem" value="<%=user.getCod()%>"/></div>
            </fieldset>
		<p id="error" class="warning">Mensagem</p>
</form>

Passando pro Servlet através js, ficando assim:

function cadastrar(form) {//cadastro de formulário e envio para o servlet
    
    if (confirm("Confirma o cadastro dos dados informados ?")){
        var dados = $(form).serialize();
        var request =      $.ajax({
            type: "POST",
            url: form.action,
            data: dados,
            success: function(response)
            {
                $("#mensagem").html(response);
                form.reset();
            }
                    
        });

        request.fail(function()
        {
            $("mensagem").html("Erro ao tentar efetuar o cadastro. Verifique os dados corretamente.")
        });
    }
}//fim do cadastro

ServletCadastoNoticia recebendo dados:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException, ClassNotFoundException, SQLException, Exception  {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            classNoticiaIndex n = new classNoticiaIndex();
            n.setTitulo(request.getParameter("titulo"));
            n.setImagem(request.getParameter("arquivo"));//Não estou conseguindo passar aqui
            n.setNoticia(request.getParameter("conteudo"));
            out.println(new classNoticiaIndexAdo().cadastrarNoticia(n, Integer.parseInt(request.getParameter("pessoa_id"))));
        }finally{
            out.close();
        }
    }

Não estou conseguindo passar aqui n.setImagem(request.getParameter("arquivo"));o requet correto(não sei)

Minha Classe :
ps: declarei como byte[] para armazenar a imagem, não sei se ´pe o mais correto, mas preciso salvar no banco(mysql)

public class classNoticiaIndex {
    private int codigoNI;
    private String titulo;
    private String noticia;
    private byte[] imagem;//declarei como byte[] para armazenar a imagem
    private Date data;
    private int pessoa_id;
}

Por gentileza poderia me ajudar com um norte, estou com grande dificuldade, obrigado.

Criado 15 de maio de 2015
Respostas 0
Participantes 1