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

[SOLUCIONADO] Servlet... Problema al Subir Archivo

Estas en el tema de Servlet... Problema al Subir Archivo en el foro de Java en Foros del Web. Hola :) Tengo un problema que no se que puede ser, debo estar haciendo algo mal... trato de subir un archivo excel mediante jsp, pero ...
  #1 (permalink)  
Antiguo 22/04/2013, 06:42
Avatar de el_java  
Fecha de Ingreso: enero-2008
Mensajes: 185
Antigüedad: 16 años, 3 meses
Puntos: 3
Servlet... Problema al Subir Archivo

Hola :)


Tengo un problema que no se que puede ser, debo estar haciendo algo mal...

trato de subir un archivo excel mediante jsp, pero al parecer no lo toma bien...


Código C:
Ver original
  1. if (ServletFileUpload.isMultipartContent(request))
  2.             {
  3.                
  4.                 if(request == null)System.out.println("***ES NULOOOO***");
  5.                
  6.                            
  7.                
  8.                 System.out.println("***ENTRO SERVLETFILEUPLOAD***");
  9.                 ServletFileUpload servletFileUpload = new ServletFileUpload(new DiskFileItemFactory());
  10.                 FileItem fileItem = null;
  11.                
  12.                 List fileItemsList = servletFileUpload.parseRequest(request);
  13.                 String optionalFileName = "";
  14.                 fileItem = null;
  15.                 Iterator it = fileItemsList.iterator();
  16.                 if(fileItemsList.isEmpty()) System.out.println("***COLECCION ES NULA***");
  17.  
  18.                 while (it.hasNext()){
  19.                     FileItem fileItemTemp = (FileItem)it.next();
  20.                     System.out.println("***ENTRO HASNEXT***");
  21.                     if (fileItemTemp.isFormField()){
  22.                         %>
  23.                         <b>Name-value Pair Info:</b><br/>
  24.                         Field name: <%= fileItemTemp.getFieldName() %><br/>
  25.                         Field value: <%= fileItemTemp.getString() %><br/><br/>
  26.                         <%
  27.                         if (fileItemTemp.getFieldName().equals("filename")) {
  28.                             optionalFileName = fileItemTemp.getString();
  29.                         System.out.println("***ARCHIVO***: " + fileItem.getFieldName());
  30.                         }
  31.                         else
  32.                             System.out.println("***ENTRO ELSE GETFIELDNAME***");
  33.                     }
  34.                     else
  35.                         fileItem = fileItemTemp;
  36.                 }
  37.                
  38.                
  39.                
  40.                 if (fileItem!=null){
  41.                     String fileName = fileItem.getName();
  42.                     System.out.println("***ENTRO IF FILEITEM***");
  43.                     %>
  44.                     <b>Uploaded File Info:</b><br/>
  45.                     Content type: <%= fileItem.getContentType() %><br/>
  46.                     Field name: <%= fileItem.getFieldName() %><br/>
  47.                     File name: <%= fileName %><br/>
  48.                     File size: <%= fileItem.getSize() %><br/><br/>
  49.                     <%
  50.  
  51.                     if (fileItem.getSize() > 0){
  52.                         System.out.println("***ENTRO IF GETSIZE***");
  53.                         if (optionalFileName.trim().equals("")) {
  54.                             System.out.println("***ENTRO IF OPTIONALFILENAME***");
  55.                             fileName = FilenameUtils.getName(fileName);
  56.                         }
  57.                         else{
  58.                             System.out.println("***ENTRO ELSE PRIONALFILENAME***");
  59.                             fileName = optionalFileName;
  60.                         }
  61.                        
  62.                        
  63.                         String dirName = "/file_uploads/";
  64.                         File saveTo = new File(dirName + fileName);
  65.  
  66.                         fileItem.write(saveTo);
  67.                     }
  68.                 } else{
  69.                     System.out.println("***ENTRO ELSE FILEITEM***");
  70.                 }
  71.             }





Esto Imprime::

***ENTRO SERVLETFILEUPLOAD***
***COLECCION ES NULA***
***ENTRO ELSE FILEITEM***



Alguna idea?
Algun otro script? :(
Necesitan algun otro codigo?

Agradecido de ante mano
__________________
La Mejor banda de Rock Chileno : Los Bunkers

Última edición por el_java; 22/04/2013 a las 07:01
  #2 (permalink)  
Antiguo 22/04/2013, 08:13
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: Servlet... Problema al Subir Archivo

Ponlo dentro de un try catch e imprime la traza de la excepción para saber por donde puede venir el problema.
  #3 (permalink)  
Antiguo 22/04/2013, 08:14
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Servlet... Problema al Subir Archivo

¿Cómo es el form con el que subes el fichero? ¿Le has puesto lo de enctype="multipart/form-data", además de method="POST"?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #4 (permalink)  
Antiguo 22/04/2013, 09:25
Avatar de el_java  
Fecha de Ingreso: enero-2008
Mensajes: 185
Antigüedad: 16 años, 3 meses
Puntos: 3
Respuesta: Servlet... Problema al Subir Archivo

Hola...

Si, está con method post
y además en multipart/form-data



intenté otro metodo y funcionó... lo colocaré por si alguien lo busca...


Código C:
Ver original
  1. public ActionForward uploadFile2(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
  2.        
  3.        
  4.         DynaValidatorForm miFormulario = (DynaValidatorForm) form;
  5.         FormFile fichero = (FormFile) miFormulario.get ("fichero");
  6.         String fileName = fichero.getFileName();
  7.         int fileSize = fichero.getFileSize();
  8.  
  9.        
  10.         if ((fileSize>0)&&(!fileName.equals(""))){
  11.             if(!fileName.equals("")){
  12.                
  13.                
  14.                 java.util.Date fechaUtil = new java.util.Date(); //fecha actual
  15.                 long lnMilisegundos = fechaUtil.getTime();
  16.                 java.sql.Date sqlDate = new java.sql.Date(lnMilisegundos);
  17.                 java.sql.Time sqlTime = new java.sql.Time(lnMilisegundos);
  18.                
  19.                 String fecha = sqlDate.toString();
  20.  
  21.                
  22.                 String dir = "C:\\prueba\\"+fecha;
  23.                
  24.                 File folder = new File(dir);
  25.                 folder.mkdirs();
  26.  
  27.                 File ficheroACrear = new File(dir, fileName);
  28.                 FileOutputStream fileOutStream = new FileOutputStream(ficheroACrear);
  29.                 fileOutStream.write(fichero.getFileData());
  30.                 fileOutStream.flush();
  31.                 fileOutStream.close();
  32.                
  33.                 String file = "C:\\prueba\\"+fecha+fichero;
  34.                
  35.                 Insertardesdexlsx(file);
  36.             }
  37.             return mapping.findForward("upload");
  38.         }else{
  39.             return mapping.findForward("select");
  40.         }
  41.     }


Código C:
Ver original
  1. <html:form action="callCenterFile" method="post" enctype="multipart/form-data">
  2. <html:hidden property="operation" />
  3. <html:hidden property="flagOperation" />
  4. <label>Fichero</label>
  5. <html:file property="fichero"/>
  6. <a href="javascript:search2('uploadFile2')"><html:img src="img/bt_inserir_c_es.gif" border="0" /></a><html:img src="img/1px.gif" width="5" />
  7. </html:form>



Al parecer era problema de struts-config

Código XML:
Ver original
  1. <action path="/callCenterFile" type="br.com.tpi.contract.callCenter.CallCenterAction" parameter="operation" name="CallCenterFile" input="/WEB-INF/jsp/callCenter/callCenter.jsp" scope="request" validate="true">
  2.         <forward name="upload" path="/WEB-INF/jsp/callCenter/uploadFile.jsp"/>
  3.         <forward name="failure" path="/WEB-INF/jsp/errorpage.jsp"/>
  4.         </action>




Aunque igual no se porqué no funciona el otro código...
salu2
__________________
La Mejor banda de Rock Chileno : Los Bunkers

Etiquetas: jsp, servlet, string
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 18:24.