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.