repositorio plugin para manager gestionar filebase español documentos descargas descargar contador boton archivos administrar gwt download

gwt - plugin - repositorio de documentos wordpress



¿Cómo puede un usuario descargar un archivo en el lado del cliente(Google Web Toolkit)? (4)

Estoy usando GWT (Google Web Toolkit) para hacer un sitio web. Necesito mostrarle una tabla al usuario y dejar que el usuario descargue el contenido de la tabla.

En el lado del cliente, ¿cómo puede un usuario descargar un archivo cuando presiona el botón "descargar"?

El botón "Descargar" tiene un oyente onClick() . Y la clase del lado del cliente extiende Composite .

Intenté que la clase extendiera HttpServlet , pero se vuelve demasiado complicado.

Ya leí publicaciones aquí:

  1. http://www.mkyong.com/java/how-to-download-file-from-website-java-jsp/
  2. ¿Cómo usar GWT al descargar archivos con un servlet?

Pero todavía no sé cómo puedo proporcionar un archivo descargable al usuario en el lado del cliente.


Para completar la respuesta del ítem número uno en la parte io ...

puedes consultar este enlace

http://www.programcreek.com/2009/02/java-convert-a-file-to-byte-array-then-convert-byte-array-to-a-file/

o consulte este código

File file = new File(enter the filepath here) FileInputStream fis = new FileInputStream(file); ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] buf = new byte[1024]; try { for (int readNum; (readNum = fis.read(buf)) != -1;) { bos.write(buf, 0, readNum); //no doubt here is 0 //Writes len bytes from the specified byte array starting at offset off to this byte array output stream. System.out.println("read " + readNum + " bytes,"); } } catch (IOException ex) { System.err.println("unable to convert to bytes"); } byte[] bytes = bos.toByteArray(); outputStream.write(bytes); outputStream.flush(); outputStream.close();

¡Espero eso ayude!



Si conoce la ruta del archivo, a continuación se muestra el fragmento de código.

button.addClickHandler(new ClickHandler() { @Overrid public void onClick(ClickEvent event) { Window.open(GWT.getHostPageBaseURL() + "/file.rar", "name", "enabled"); } });


REALMENTE necesita distinguir entre el código Java del lado del cliente GWT y el código java del lado del servidor.

Del lado del cliente en tu código GWT Java

String url = GWT.getModuleBaseURL() + "downloadService?fileInfo1=" + fileInfo1; Window.open( url, "_blank", "status=0,toolbar=0,menubar=0,location=0");

Del lado del servidor en su código Java no gwt

En web.xml

<servlet> <servlet-name>downloadService</servlet-name> <servlet-class>AAA.BBB.CCC.DownloadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>downloadService</servlet-name> <url-pattern>/<gwtmodulename>/downloadService</url-pattern> </servlet-mapping>

En el código del paquete del servidor, un servlet

public class DownloadServlet extends HttpServlet{ protected void doGet( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException { String fileName = req.getParameter( "fileInfo1" ); int BUFFER = 1024 * 100; resp.setContentType( "application/octet-stream" ); resp.setHeader( "Content-Disposition:", "attachment;filename=" + "/"" + fileName + "/"" ); ServletOutputStream outputStream = resp.getOutputStream(); resp.setContentLength( Long.valueOf( getfile(fileName).length() ).intValue() ); resp.setBufferSize( BUFFER ); //Your IO code goes here to create a file and set to outputStream// } }

Asegúrese de insertar el contenido de su archivo en **outputStream** .