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

error al subir un archivo

Estas en el tema de error al subir un archivo en el foro de Java en Foros del Web. hola amigos Estoy tratando de subir un archivo (FileUpload) pero me marca este error: javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream esta programado en NetBeans Espero que me puedan ...
  #1 (permalink)  
Antiguo 24/09/2009, 12:42
 
Fecha de Ingreso: febrero-2009
Mensajes: 142
Antigüedad: 15 años, 3 meses
Puntos: 0
Pregunta error al subir un archivo

hola amigos

Estoy tratando de subir un archivo (FileUpload)
pero me marca este error:

javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream

esta programado en NetBeans

Espero que me puedan ayudar con este error

Gracias
  #2 (permalink)  
Antiguo 24/09/2009, 12:51
Avatar de DiabloGuardian  
Fecha de Ingreso: noviembre-2008
Ubicación: Hidalgo
Mensajes: 215
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: error al subir un archivo

creo que deberias de poner todo el error y tu codigo por que asi solo te puedo decir que no tienes la clase DeferredFileOutputStream y esto no te serviria de mucho.

saludos
__________________
-=:[ Lo importante no es saber todo, sino saber buscar ]:=-
  #3 (permalink)  
Antiguo 24/09/2009, 13:07
 
Fecha de Ingreso: febrero-2009
Mensajes: 142
Antigüedad: 15 años, 3 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.
  #4 (permalink)  
Antiguo 24/09/2009, 13:26
Avatar de DiabloGuardian  
Fecha de Ingreso: noviembre-2008
Ubicación: Hidalgo
Mensajes: 215
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: error al subir un archivo

Cita:
Iniciado por hola123 Ver Mensaje

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.
creo que tu codigo esta bien, de casualidad yo estaba batallando con esto mismo yo usaba fileupload 1.2 pero consegui el 1.1.1 y commons-io-1.1 y funciono tambien cambie un poco de codigo


este es mi codigo
Código:
*/			File destino=new File("/usr/local/apache-tomcat-6.0.0/webapps/sinac_org/Proyectos/menu/proyectos/informes_tecnicos");
			boolean correcto = FileUpload.isMultipartContent(request);
			
			if(correcto){
				
				//Creamos un handler
				DiskFileUpload diskFileUpload = new DiskFileUpload();
				
				//definimos el tama�o por encima del cual los archivos subidos son 
				//guardados a disco como archivos temporales
				diskFileUpload.setSizeThreshold(512000);
				//directorio temporal donde se guardan los ficheros temporales
				diskFileUpload.setRepositoryPath("/usr/local/apache-tomcat-6.0.0/webapps/sinac_org/Proyectos/menu/proyectos/informes_tecnicos/tmp");
				//Tama�o m�ximo del conjunto de archivos que viajan en la request
				diskFileUpload.setSizeMax(1024000);
				
				//obtenemos la lista de elementos que vienen en la request: campos de formulario, archivos, ...
				List lista = diskFileUpload.parseRequest(request);
				
				Iterator it = lista.iterator();
				
				while(it.hasNext()){
					
					//sacamos un objeto
					FileItem fileItem = (FileItem)it.next();
										
					if(!fileItem.isFormField() && fileItem.getSize()>0){												
						File file=new File(fileItem.getName());
						out.println("proxima linea...guardar");
						//guardamos el fichero
						fileItem.write(new File(destino,file.getName()));
						out.println(">>"+file.getName());					
					}					
				}				
			}else{
				out.println("falla...");
			}

ojala te sirva, saludos...
__________________
-=:[ Lo importante no es saber todo, sino saber buscar ]:=-
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 17:08.