En este grupo En todos

Foro de Struts

Ivan
Madrid, España
Escrito por Ivan
el 04/06/2008

Hola Asile,

No veo el problema, entiendo que tienes un ActionForm que recoge tanto los campos del nombre y el precio como el de la foto. El tipo del campo foto tiene que ser FormFile, para que en tu action puedas obtener el fichero y con el puedes o guardarlo en base de datos o en disco.

¿Me puedes contar más exactamente qué es lo que te ocurre?

Un saludo.

Escrito por Asile
el 04/06/2008
" Hola a todos, el servlet completo es este, aunque no aporta mucho más de lo que ya escribí en su dia:


public class ServletObtenerDocumento extends javax.servlet.http. HttpServlet implements javax.servlet.Servlet {


   
    public ServletObtenerDocumento() {
        super();
    }     
  
  
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        process(request,response);
    }    
  
  
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        process(request,response);
    } 
  
    public void process(HttpServletRequest request, HttpServletResponse response) {
      

        ServletContext context = getServletContext();
      
        try{

                //Aqui obtenemos el fichero del disco duro de nuestro servidor o de base de datos

                //En cada caso lo obtendreis de una manera pero teneis que obtenerlo como un array de bytes

                //os pongo un ejemplo de como obtenerlo
                File archivo = new File (_rutaFichero_);
           
                String sLongitud = String. ValueOf(archivo. Length());
                byte[] bytes = new byte[Integer. ParseInt(sLongitud)]
           
               FileInputStream fostream = new FileInputStream(archivo);
           
                fostream. Read(bytes);



              
              
                OutputStream outServlet = response. GetOutputStream();
                //Si le añadis el tipo del fichero el navegador lo abrirá con el programa adecuado, por ejemplo un power point
                response. SetContentType("application/mspowerpoint");
                response. SetHeader("Content-disposition",
                                    "attachment; filename=_AQUI PONEIS EL NOMBRE DEL FICHERO QUE QUERAIS_");

                outServlet. Write(bytes);
                outServlet. Close();
              
              
            }
        }
        catch (Exception e){
            e. PrintStackTrace();
            System.out.println(e. GetMessage());
        }
    }
  
  
}

"

por ivan (Junio 2008)


Ya lo logé solucionar, pero muchas gracias de todas formas
Escrito por Asile
el 04/06/2008
Ya lo habia solucionado pero de todas formas muchas gracias!
Escrito por Asile
el 04/06/2008
Ya lo habia solucionado pero muchas gracias de todas formas!
Escrito por Perro Struts
el 25/07/2008
" Hola,
el api de struts solo te permite subir ficheros, no descargarlos. El manual del que hablas creo q esta bien, al menos yo lo seguí en su dia y me sirvió bastante.
Para descargar ficheros es mejor que te crees un servlet a parte y lo invoques cuando necesites desde un jsp por ejemplo, con un enlace.
En el servlet lo unico que tienes que hacer es obtener por ejemplo un array de bytes del fichero que quieres descargar. Crearte un objeto outputStream y volcar ahi el contenido, y meterlo todo en la response del servlet. Algo como esto:
                byte[] salida = //obtienes una array de bytes mediante un FileInputStream por ejempl;
               
                OutputStream outServlet = response. GetOutputStream();
                response. SetContentType(/*Aqui incluyes el tipo mime, por ejemplo application/pdf*/);
                //mediante esta linea conseguimos que no lo interprete el plugin del browser y nos de la opcion de guardar o
                //de abrirlo con el programa adecuado.
//metes las cabeceras en la peticion http
                response. SetHeader("Content-disposition",
                              "attachment; filename=" +
                              doc. GetNombreDocOriginal() );             
                outServlet. Write(salida);
                outServlet. Close();


Con este codigo tanto en el metodo get como en el metodo post de tu servlet podras descargar ficheros. Si no te funciona dimelo y te paso el servlet completo.
Un saludo. "

por ivan (Junio 2007)



niño

Https://struts.apache.org/1. X/struts-extras/apidocs/org/apache/struts/actions/DownloadAction. Html

Adrian77
Córdoba, Argentina
Escrito por Adrian77
el 23/10/2008
hola soy nuevo aqui y necesitaria que me pasen los pasos necesarios para cargar el programa para subir archivos al servidor,porque segui los pasos de adictosaltrabajo y me da un error que no puedo sacarlo, y necesitaria saber hasta que capacidad se puede almacenar en el servidor, desde ya muchas gracias
Chus Garcia
Experto: producción de eventos y espec...
Escrito por Chus Garcia
el 01/06/2017

Destacamos debate en primera página. Muchas gracias por vuestras aportaciones para ayudar al Grupo de Struts.