24/09/2009, 13:07
|
| | Fecha de Ingreso: febrero-2009
Mensajes: 142
Antigüedad: 15 años, 11 meses Puntos: 0 | |
Respuesta: error al subir un archivo ok, este es mi codigo
<%--
Document : uploadfile
Created on : 12/03/2009, 02:05:22 PM
Author : IGNACIO
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="com.util.connvars" %>
<%@page import="java.sql.*" %>
<%@ page
import="java.util.*"
import="org.apache.commons.fileupload.*"
import="org.apache.commons.fileupload.servlet.*"
import="org.apache.commons.fileupload.disk.*"
import="java.io.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Upload</title>
</head>
<body>
<%
try{
HttpSession s = request.getSession();
//ses_id_nota variable de session nota
String strid =(String)s.getAttribute("ses_id_nota");
//ses_id_tm variable de session Tipo Medio
String strtipomedio =(String)s.getAttribute("ses_id_tm");
String strtrep =(String)s.getAttribute("ses_p_rep");
Connection conn;
Statement stmt;
ResultSet rs;
Class.forName(connvars.CLASS_DB).newInstance();
conn = DriverManager.getConnection(connvars.URL_DB, connvars.USER_DB, connvars.PWD_DB);
stmt = conn.createStatement();
String strQry;
String strtabla="";
String strcarpeta="";
//Validamos a que tipo de medio pertenece
if(strtipomedio.equals("1")||strtipomedio.equals(" 2")){
strtabla="tbl_monitoreo";
strcarpeta="uploadtbl_monitoreo";
}else if(strtipomedio.equals("3")){
strtabla="tbl_monitoreointernet";
strcarpeta="uploadtbl_monitoreointernet";
System.out.println("Internet");
}else if(strtipomedio.equals("4")){
strtabla="tbl_monitoreoradio";
strcarpeta="uploadtbl_monitoreo_radio";
System.out.println("Radio");
}else if(strtipomedio.equals("5")){
strtabla="tbl_monitoreotv";
strcarpeta="uploadtbl_monitoreotv";
System.out.println("TV");
}
//Ruta donde se guardara el fichero
// File destino=new File("C:/Documents and Settings/DOT/Mis documentos/alicia/SD/web/upload/uploadfiles/"+strcarpeta );
File destino=new File("C:/Documents and Settings/Alicia Santiago/Mis documentos/alicia/SD-nuevo-requerimiento/web/upload/uploadfiles/" + strcarpeta + "/");
// File destino=new File("../../home/dot/public_html/SD/upload/uploadfiles//"+strcarpeta);
System.out.println("entramos a upload");
// Convertimos el HTTPRequest en un ContextRequest,
// este paso es necesario en la ultima version,
// ya que los metodos de las versiones anteriores
// se han quedado desfasados.
ServletRequestContext src=new ServletRequestContext(request);
// String filename=request.getParameter("fichero");
//System.out.println("<script>alert('Valor1: "+filename+"');</script>");
//Si el formulario es enviado con Multipart
if(ServletFileUpload.isMultipartContent(src)){
//Necesario para evitar errores de NullPointerException
DiskFileItemFactory factory = new DiskFileItemFactory((1024*1024),destino);
//Creamos un FileUpload
ServletFileUpload upload=new ServletFileUpload(factory);
//Procesamos el request para que nos devuelva una lista
//con los parametros y ficheros.
List lista = upload.parseRequest(src);
System.out.println("Lista=" + lista);
File file= null;
//Recorremos la lista.
Iterator it = lista.iterator();
while(it.hasNext()){
System.out.println("entramos a while");
//Rescatamos el fileItem
FileItem item=(FileItem)it.next();
//Comprobamos si es un campo de formulario
if(item.isFormField())
//Hacemos lo que queramos con el.
out.println(item.getFieldName()+"<br>");
else
{
System.out.println("es archivo");
//Si no, es un fichero y lo subimos al servidor.
//Primero creamos un objeto file a partir del nombre del fichero.
//file=new File(item.getName());
String strext = item.getName().substring(item.getName().length()-4, item.getName().length());
// String strnom = strid + strext;
String strnom = strid+ strext;
System.out.println("que traes:"+ strid);
// String strnom = request.getParameter("id") + strext;
strQry = "UPDATE " + strtabla + " set cv_archivo = '../upload/uploadfiles/" + strcarpeta+ "/" + strnom + "' where id_monitoreo = " + strid;
System.out.println("Update=" + strQry);
System.out.println(strext);
stmt.executeUpdate(strQry);
file=new File(strnom);
//Lo escribimos en el disco
// usando la ruta donde se guardara el fichero
// y cogiendo el nombre del file
// Nota: Se podria hacer usando el objeto item en vez del file directamente
// Pero esto puede causar incompatibilidades segun que navegador, ya que
// algunos solo pasan el nombre del fichero subido, pero otros
// como Iexplorer, pasan la ruta absoluta, y esto crea un pequeño problema al escribir
// el fichero en el servidor.
System.out.println("escribimos archivo");
item.write(new File(destino,file.getName()));
System.out.println((new File(destino,file.getName())));
//out.println("Carga de archivo satisfactoria");
}
}
}
if(strtrep.equals("1")){
response.sendRedirect("../monitoreo/vista.jsp");
}else if (strtrep.equals("2")){
response.sendRedirect("../monitoreo/capturanota.jsp");
}
%>
<%
conn.close();
// url = "";
}catch(IOException ioe) {
out.println("Exception SQL en uploadfile.jsp " + ioe.toString());
}
catch (SQLException se) {
out.println("Exception SQL en uploadfile.jsp " + se.toString());
} catch (Exception ex) {
out.println("Error en uploadfile.jsp " + ex.toString());
}
%>
</body>
</html>
y el error me lo envia cuando lo ejecuto que es:
Estado de HTTP 500 -
--------------------------------------------------------------------------------
type Informe de excepción
Mensaje
DescripciónEl servidor encontró un error interno () que impide satisfacer la solicitud.
Excepción
javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
Causa principal
java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
nota Las causas de los seguimientos de pila completos de la excepción y su root se encuentran disponibles en los Sun Java System Application Server 9.1_02 registros. |