Le code d'implémentation de la fonction de téléchargement de fichiers Struts2 est le suivant:
Fichier d'action
Classe publique DownloadloadAction étend ActionSupport {/ ** * * / private static final long SerialVersionUID = 5879762231742395104l; Nom de fichier de chaîne privée; // le nom de fichier demandé par l'utilisateur Private String InputPath; // le chemin de téléchargement de la ressource (Définir dans le fichier de configuration de Struts) public void setInputPath (String inputPath) {this.inputPath = inputPath; } public String getInputPath () {return inputPath; } public void setFileName (String filename) {this.filename = filename; } public String getFileName () {return filename; } public String DownloadFile () lève une exception {ServletContext context = servletActionContext.getServletContext (); String downloadDir = context.getRealPath ("/ upload"); String downloadFile = context.getRealPath (inputPath); // Empêche les utilisateurs de demander des ressources dangereuses si (! DownloadFile.startswith (DownloadDir)) {return null; } return "téléchargement_success"; } / * * Get Input Stream Resource * / public inputStream getInputStream () lève exception {string path = inputpath + file.separatorchar + new String (filename.getBytes ("iso-8859-1"), "utf-8"); return servletActionContext.getServletContext (). getResourceSstream (path); } / * * Obtenez le nom de fichier par défaut du fichier lors du téléchargement * / public String GetdownloadFileName () {String downloadFileName = filename; essayez {downloadFileName = urlencoder.encode (téléchargementFileName, "iso-8859-1"); } catch (unportdencodingException e) {e.getMessage (); e.printStackTrace (); } return downloadFileName; }}Fichier JSP:
<li> <a href = "<% = path%> / download_downloadaction_downloadfile.action? filename = dwr.jar"> dwr.jar sous </a> </li> <li> <a href = "<% = path%> download_downloadaction_downloadfile.action? </li>
strut.xml:
<action name="download_*_*" method="{2}"> <param name="inputPath">/upload</param> <!-- result type set to stream --> <result name="download_success" type="stream"> <!-- MIME type--> <param name="contentType">application/octet-stream</param> <!-- The value of inputName corresponds to the method name of the action to obtain La ressource de flux d'entrée (la méthode getInputStream est définie dans l'action, et le type de retour est InputStream) -> <param name = "inputName"> InputStream </param> <! - Définissez le fichier avec des pièces jointes pour obtenir dynamiquement le nom de fichier (définir la méthode GetdownLoadFilename en action) -> <param named = "CONPONTDISSOSITION"> Pièce; Définissez la taille du tampon -> <param name = "BufferSize"> 2048 </param> </sult> </ Action>Ce qui précède est le contenu pertinent de la mise en œuvre de Struts2 du partage du code de la fonction de téléchargement de fichiers (transcodage de nom de fichier en chinois) présenté par l'éditeur. J'espère que ce sera utile à tous!