Descargar archivos javaweb
No digas descargar con la etiqueta <a>, esto abrirá el archivo en lugar de descargar
Por ejemplo:
<a href = "e: /mydesktop/37fecd65330184de67d419a8d02e7081.jpg"> descargar </a>
Si escribo de esta manera, el navegador abrirá la imagen directamente a menos que sea un archivo que el navegador no pueda abrir
Por lo tanto, todavía necesitamos usar Java en sí para leer y escribir archivos para descargar archivos
<a href = "downloadfile? FileName = <s: Property value = 'document_fileName'/>"> Descargar </a>
paquete com.cpsec.tang.chemical.action; import java.io.file; import java.io.fileInputStream; import java.io.filenotfoundexception; import java.io.fileOutputStream; import java.io.ioexception; import java.io.inputstream; importar java.io.outputstream; java.text.simpledateFormat; import java.util.calendar; import java.util.list; import java.util.random; import javax.annotation.resource; import javax.servlet.http.httttpservletRequest; import javax.servlet.http.htttttttttttponse; importación; org.apache.struts2.ServletActionContext; import org.springframework.steretype.controller; import com.cpsec.tang.chemical.biz.documentbiz; import.cpsec.tang.chemical.entity.document; import com.cpsec.tang.chemical.util.pager; importar; import com.opensymphony.xwork2.ActionSupport; @Controller ("DocumentAction") Public Class DocumentAction extiende ActionSupport {private String FileName; public String downloadFile () {System.out.println (nombre de archivo); intente {httpservletResponse respuesta = servletactionContext.getResponse (); // Establecer el archivo mime type respuesta.setContentType (servletactionContext.getServletContext (). GetMimetype (nombre de archivo)); // Establecer contenido-Disposición de respuesta.setheader ("Content-Disposition", "Adjunto; FileName ="+FileName); // Obtenga la ruta absoluta de la cadena del archivo de destino fullFileName = servletactionContext.getServletContext (). GetRealPath ("/files/" + FileName); //System.out.println(fullFileName); // lee el archivo inputStream in = new FileInputStream (FullFileName); // Lea el archivo de destino y escriba el archivo de destino al cliente a través de la respuesta OutputStream Out = Response.getOutputStream (); // Escribir el archivo int b; while ((b = in.read ())! = -1) {out.write (b); } in.close (); out.close (); } catch (Exception e) {E.PrintStackTrace (); } return éxito; }}Gracias por leer, espero que pueda ayudarte. ¡Gracias por su apoyo para este sitio!