Téléchargement du fichier Javaweb
Ne dites pas télécharger avec la balise <a>, cela ouvrira le fichier au lieu de télécharger
Par exemple:
<a href = "e: /mydesktop/37fecd65330184de67d419a8d02e7081.jpg"> télécharger </a>
Si j'écris de cette façon, le navigateur ouvrira l'image directement à moins qu'il ne s'agisse d'un fichier qui ne peut pas être ouvert par le navigateur
Nous devons donc encore utiliser Java lui-même pour lire et écrire des fichiers pour télécharger des fichiers
<a href = "DownloadFile? FileName = <S: Property Value = 'Document_Filename' />"> Télécharger </a>
package com.cpsec.tang.chemical.action; import java.io.file; import java.io.fileInputStream; import java.io.filenotfoundException; import java.io.fileoutStream; import java.io.ioexception; import java.text.simpledateformat; import java.util.calendar; importer java.util.list; import java.util.random; import javax.annotation.resource; import javax.servlet.http.httpservlerserSerStern org.apache.struts2.ServletActionContext; import org.springframework.steretype.controller; import com.cpsec.tang.chemical.biz.documentbiz; import com.cpsec.tang.chemical.entity.Document; import com.cpsec.tang.chemical.util.pagère; import; com.opensymphony.xwork2.actionSupport; @Controller ("DocumentAction") La classe publique DocumentAction étend ActionSupport {Private String FileName; public String DownloadFile () {System.out.println (nom de fichier); try {httpServletResponse réponse = servletActionContext.getResponse (); // Définissez le fichier MIME Type Response.SetContentType (servletActionContext.getServletContext (). GetMiMetype (nom de fichier)); // Définit la réponse de contenu. // Obtenez le chemin absolu de la chaîne de fichiers cible fullFileName = servletActionContext.getServletContext (). GetRealPath ("/ Files /" + FileName); //System.out.println(fullFileName); // Lire le fichier inputStream dans = new FileInputStream (fullFileName); // Lisez le fichier cible et écrivez le fichier cible au client via Response OutputStream Out = Response.getOutputStream (); // Écrivez le fichier int b; while ((b = in.read ())! = -1) {out.write (b); } in.close (); out.close (); } catch (exception e) {e.printStackTrace (); } Retour succès; }}Merci d'avoir lu, j'espère que cela peut vous aider. Merci pour votre soutien à ce site!