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