Код реализации функции загрузки файла Struts2 следующим образом:
Файл действия
Public Class DownloadAction Extends ActionSupport { / ** * * / Private Static Long Long SerialVersionUID = 5879762231742395104L; Private String FileName; // Имя файла, запрашиваемое пользовательской частной строкой inputPath; // Путь к загрузке ресурса (установлен в файле конфигурации 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 () Throws Exception {ServletContext context = ServletActionContext.getServletContext (); String downloaddir = context.getRealpath ("/upload"); String downloadfile = context.getRealpath (inputPath); // предотвращение запроса пользователей небезопасных ресурсов if (! Downloadfile.startswith (downloadDir)) {return null; } return "download_success"; } /** Получить ресурс потока ввода* / public inputStream getInputStream () throws exception {String path = inputPath + file.separatorChar + new String (fileName.getBytes ("iso-8859-1"), "utf-8"); return servletactionContext.getServletContext (). getResourCeasStream (path); } /** Получите имя файла по умолчанию файла при загрузке* / public String getDownloadFilEname () {String DownloadFilename = Filename; try {downloadfilename = urlencoder.encode (downloadfilename, "iso-8859-1"); } catch (unsupportEncodingException e) {e.getMessage (); e.printstacktrace (); } return Downloadfilename; }}файл JSP:
<li> <a href = "<%= path%>/download_downloaduction_downloadfile.action? filename = dwr.jar"> dwr.jar file in </a> </li> <li> <a href = "<%= path%>/download_downuction_downloadfile? </li>
struts.xml:
<name = "Загрузить _*_*" method = "{2}"> <param name = "inputPath">/upload </param> <!-Тип результата, установленная для потока-> <name = "download_success" type = "Stream"> <!-тип Mime-> <param name = "contentype"> Приложение/octet-stem </param> </param> <! Ресурс ввода потока (метод getInputStream определяется в действии, а возвращаемый тип-inputStream)-> <param name = "inputName"> inputStream </param> <!-Установите файл с прикреплениями к динамически получить имя файла (определить метод getDownloadfilename в действии)-> <parame = "contentDisposity"> attlection; filename = "$ {Загрузка {Загрузка Размер буфера-> <param name = "buffersize"> 2048 </param> </result> </action>Выше приведено соответствующее содержание реализации strUTS2 обмена кодом функции загрузки файла (транскодирование имени файла на китайском языке), введенное вам редактором. Я надеюсь, что это будет полезно для всех!