Javaweb -Datei herunterladen
Sagen Sie nicht das Herunterladen mit dem <a> Tag, dies öffnet die Datei anstatt herunterzuladen
Zum Beispiel:
<a href = "e: /mydesktop/37FECD65330184DE67D419A8D02E7081.JPG"> Download </a>
Wenn ich auf diese Weise schreibe, öffnet der Browser das Bild direkt, es sei denn, es handelt sich um eine Datei, die vom Browser nicht geöffnet werden kann
Daher müssen wir Java selbst zum Lesen und Schreiben von Dateien verwenden, um Dateien herunterzuladen
<a href = "DownloadFile? Dateiname = <S: Eigenschaft value = 'document_filename'/>"> download </a>
Paket com.cpec.tang.chemical.action; import java.io.file; import java.io.fileinputstream; import Java.io.filenotFoundException; import Java.io.fileOutputStream; Import Java.io.ioxception; Import Java.io.inputStream; java.text.SimpledateFormat; import Java.util.calendar; import Java.util.list; import Java.util.random; import Javax.annotation org.apache.struts2.servletactactactacontext; import org.springframework.steretype.controller; import com.cpec.tang.chemical.biz.documentbiz; import com.cpec.tang.chemical.entity.document; import com.cpec.tang.chemic.chemical.pager; com.opensymphony.xwork2.actionsupport; @Controller ("Dokumentation") öffentliche Klassen -Dokumentation erweitert ActionVort {private String -Dateiname; public String downloadFile () {System.out.println (Dateiname); try {httpServletResponse response = servletActActionContext.getResponse (); // Setzen Sie die Dateimime -Typ -Antwort. // Inhalts-Disposition-Antwort festlegen. // Erhalten Sie den absoluten Pfad der Zieldatei String fullFileName = servletActionContext.getServletContext (). GetRealPath ("/Dateien/" + Dateiname); //System.out.println(fullFileName); // Lesen Sie die Datei inputStream in = new FileInputStream (fullFileName); // Lesen Sie die Zieldatei und schreiben Sie die Zieldatei über Antwort outputStream out = response.getOutputStream (); // Schreiben Sie die Datei int B; while ((b = in.read ())! = -1) {out.write (b); } in.close (); out.close (); } catch (Ausnahme e) {e.printstacktrace (); } Return Success; }}Danke fürs Lesen, ich hoffe, es kann Ihnen helfen. Vielen Dank für Ihre Unterstützung für diese Seite!