Foros del Web » Programación para mayores de 30 ;) » Java »

Error al subir imagen desde formulario

Estas en el tema de Error al subir imagen desde formulario en el foro de Java en Foros del Web. Hola a todos, Tengo un problema al subir una imagen desde un formulario, como creo que la mejor forma de explicarse es viendo el codigo ...
  #1 (permalink)  
Antiguo 14/12/2010, 13:28
 
Fecha de Ingreso: mayo-2003
Mensajes: 33
Antigüedad: 21 años
Puntos: 0
Error al subir imagen desde formulario

Hola a todos,


Tengo un problema al subir una imagen desde un formulario, como creo que la mejor forma de explicarse es viendo el codigo os lo pongo y asi me podreis ayudar mejor.


form_publicidad.jsp este fichero es el que carga el formulario.


<%@ page language="java" import="java.util.*" %>

<html>

<style type="text/css">
<!--
.textarea {


background-color: #000000;


width:500px;


height:380px;


overflow:auto;


margin-bottom: 15px;

color: #0000FF;

font-size: 15px;
}

-->

</style>


<script language="javascript" type="text/javascript">

function valida_email(mail){

var caracteres=/^[^@\s]+@[^@\.\s]+(\.[^@\.\s]+)+$/

return caracteres.test(mail)

}

function valida_telefono(telefono) {

var digitos = /(^([0-9]{9,9}))$/

return digitos.test(telefono)

}

function valida_url(cadena)
{
var www=/(^www.[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)( [a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?)$/
var http=/(^(ht)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)( [a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?)$/

var es_url = true;

cadena = cadena.toLowerCase();

alert ("AQUI1");
if((cadena.length <= 4) || (cadena.length > 100))
{
es_url = false;
alert ("AQUI");
}
else {


if ((www.test(cadena) || http.test(cadena)) && es_url)
es_url = true;
else
es_url = false;

}
return(es_url);
}

function valida_banner(archivo) {

extensiones_permitidas = new Array(".gif", ".jpg");
mierror = "";

if (!archivo) {
return false
}else{
extension = (archivo.substring(archivo.lastIndexOf("."))).toLo werCase();
permitida = false;
for (var i = 0; i < extensiones_permitidas.length; i++) {
if (extensiones_permitidas[i] == extension) {
permitida = true;
break;
}
}
if (!permitida) {
mierror = "Comprueba la extensión de los archivos a subir. \nSólo se pueden subir archivos con extensiones: " + extensiones_permitidas.join();
return false
}else{
//formulario.submit();
return true
}
}
}


function valida_formulario(form) {

var continuar = true;

if (valida_email(form.mail.value) == false) {
form.mail.focus();
mostrar("El 'E-mail' esta vacio o no es un mail valido. Ejemplo de mail valido [email protected]","mail");
continuar = false;
}
else
mostrar("","mail");

if (valida_telefono(form.telefono.value) == false) {
form.telefono.focus();
mostrar("El 'Telefono' esta vacio o no es un telefono valido. Introduzca los nueve digitos de su telefono sin espacios ni guiones","telefono");
continuar = false;
}
else
mostrar("","telefono");

if (valida_banner(form.banner.value) == false) {
form.banner.focus();
mostrar("El 'banner' esta vacio","banner");
continuar = false;
}
else
mostrar("","banner");

if (valida_url(form.url.value) == false) {
form.url.focus();
mostrar("La 'URL' esta vacio o no es una direccion web correcta. Ejemplo de Url correcta www.pornoweb.com o http://www.pornoweb.com","url");
continuar = false;
}
else
mostrar("","url");

if (continuar == true){
return true
}
else{
return false
}
}

function mostrar(error,origen) {

if (origen == "mail") {
document.getElementById('Error_mail').innerHTML = error;
document.getElementById('Error_mail').style.color = "#FF0000";
}
if (origen == "telefono") {
document.getElementById('Error_telefono').innerHTM L = error;
document.getElementById('Error_telefono').style.co lor = "#FF0000";
}
if (origen == "banner") {
document.getElementById('Error_banner').innerHTML = error;
document.getElementById('Error_banner').style.colo r = "#FF0000";
}
if (origen == "url") {
document.getElementById('Error_url').innerHTML = error;
document.getElementById('Error_url').style.color = "#FF0000";
}
}
</script>

<head>
<title>TITULO DE LA PAGINA</title>
</head>

<body bgcolor="#190718" background="imagenes\escorts.jpg">



<h3>
<font color="#0000FF">
FORMULARIO PARA CONTRATAR SU PUBLICIDAD
</font>
</h3>


<form method="post" onSubmit = "return valida_formulario(this)" action="insertar_publicidad.jsp">

<table align="left" cellpadding="2" cellspacing="2" border="1" width="50%">

<tr>
<td colspan="2" id="Error_mail" title="Ejemplo de mail correcto, [email protected]"></td>
</tr>
<tr>
<td colspan="2" id="Error_telefono"></td>
</tr>
<tr>
<td colspan="2" id="Error_banner"></td>
</tr>
<tr>
<td colspan="2" id="Error_url"></td>
</tr>
<tr>
</tr>
<tr>
<th><font color="#0000FF">E-MAIL:</font></th>
<td><input name="mail" type="text" size=55></td>
</tr>
<tr>
<th><font color="#0000FF">TELEFONO:</font></th>
<td><input name="telefono" type="text" size=55></td>
</tr>
<tr>
<th><font color="#0000FF">BANNER:</font></th>
<td><input name="banner" type="file" size=55></td>
</tr>
<tr>
<th><font color="#0000FF">URL:</font></th>
<td><input name="url" type="text" size=55></td>
</tr>
<tr>
<td colspan="2"> <input type="submit" value="Añadir el nuevo anuncio"></td>
</tr>

</table>


</form>
</body>
</html>



insertar_publicidad.jsp este es el que llama al java


<%@ page language="java" %>
<%@ page import = "datos.guardarimagen"%>

<%String mail = request.getParameter("mail");
out.println ( "Tu nombre es: " + mail );%>
<br>
<%String telefono = request.getParameter("telefono");
out.println ( "Tu nombre es: " + telefono );%>
<br>
<%String banner = request.getParameter("banner");
out.println ( "Tu nombre es: " + banner );%>
<br>
<%String url = request.getParameter("url");
out.println ( "Tu nombre es: " + url );%>
<br>
<br>
<%


guardarimagen.guardaimagen(
codigo,
mail,
telefono,
banner,
url);


%>



guardarimagen.java

package datos;

import java.io.*;
import java.sql.*;

public class guardarimagen {

public static void guardaimagen(String codigo, String email, String telefono,
String banner, String url) throws Exception, IOException, SQLException {

Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost/berfer", "root", "berfer");

try {

File filen = new File(banner);
FileInputStream fis = new FileInputStream(banner);
PreparedStatement ps = conn.prepareStatement("insert into publicidad(email, banner) values (?, ?)");
ps.setString(1,email);
ps.setBinaryStream(1, fis, (int) filen.length());
ps.execute();
ps.close();
conn.commit();
} finally {

}

}

}



la tabla

CREATE TABLE `berfer`.`publicidad` (
`codigo` varchar(7) NOT NULL, ---> este ya tienes valores manuales
`email` varchar(100) default NULL,
`telefono` varchar(9) default NULL,
`banner` blob,
`url` varchar(100) default NULL,
`estado` int(11) default '0',
PRIMARY KEY (`codigo`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;





error que da


org.apache.jasper.JasperException: No se puede compilar la clase para JSP:

An error occurred at line: 6 in the generated java file
Only a type can be imported. datos.guardarimagen resolves to a package

Ha tenido lugar un error en la l�nea: 20 en el archivo jsp: /insertar_publicidad.jsp
guardarimagen cannot be resolved
17: <%
18:
19:
20: guardarimagen.guardaimagen(
21: codigo,
22: mail,
23: telefono,


Ha tenido lugar un error en la l�nea: 21 en el archivo jsp: /insertar_publicidad.jsp
codigo cannot be resolved
18:
19:
20: guardarimagen.guardaimagen(
21: codigo,
22: mail,
23: telefono,
24: banner,


Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.jav acError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacEr ror(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateCla ss(JDTCompiler.java:423)
org.apache.jasper.compiler.Compiler.compile(Compil er.java:317)
org.apache.jasper.compiler.Compiler.compile(Compil er.java:295)
org.apache.jasper.compiler.Compiler.compile(Compil er.java:282)
org.apache.jasper.JspCompilationContext.compile(Js pCompilationContext.java:586)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)




y la pregunta del millon es, que esta pasando que no veo???


muchas gracias

Etiquetas: subir, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:10.