struts 文件的上传下载 简要实现 下载过程传递中文实现



Struts是Java Web开发中的一个流行MVC框架,它提供了丰富的功能来构建动态网站应用程序。在Struts中,文件的上传和下载是常见的需求,尤其是处理用户交互时的数据交换。以下是对Struts文件上传和下载功能的简要实现及其中文处理方式进行的详细解释。 我们来看文件上传。在Struts2中,文件上传主要依赖于`Apache Commons FileUpload`库。开发者需要在Struts的配置文件(通常为`struts.xml`)中添加相应的拦截器,例如`params`和`fileUpload`拦截器,以便处理文件上传请求。例如: ```xml <interceptors> <interceptor name="fileUpload" class="org.apache.struts2.interceptor.FileUploadInterceptor"/> <interceptor-stack name="defaultStack"> <interceptor-ref name="fileUpload"/> <interceptor-ref name="params"/> <!-- 其他拦截器 --> </interceptor-stack> </interceptors> ``` 然后,创建一个Action类来接收文件,并使用`FileItem`接口来访问上传的文件数据。Action类中的方法可以如下所示: ```java public class UploadAction extends ActionSupport { private File file; private String fileName; // getter and setter public String execute() { if (file != null && !file.isEmpty()) { // 保存文件到服务器 File saveDir = new File("/path/to/save/uploaded/files"); file.renameTo(new File(saveDir, fileName)); // 返回成功结果 return SUCCESS; } // 如果没有文件,返回错误 return INPUT; } } ``` 接下来是文件下载。同样,需要在`struts.xml`中配置Action和结果。比如,我们可以创建一个`DownloadAction`,并定义一个`download`方法: ```xml <action name="download" class="com.example.DownloadAction"> <result type="stream"> <param name="contentType">application/octet-stream</param> <param name="inputName">fileInputStream</param> <param name="bufferSize">1024</param> </result> </action> ``` 在`DownloadAction`中,我们需要打开文件流并将其设置为HTTP响应的输出流: ```java public class DownloadAction extends ActionSupport { private File file; private FileInputStream fileInputStream; // getter and setter public String execute() { try { fileInputStream = new FileInputStream(file); } catch (FileNotFoundException e) { // 处理异常 } return SUCCESS; } public InputStream getFileInputStream() { return fileInputStream; } } ``` 对于中文文件名的处理,Struts2提供了内置支持。在文件名中包含中文时,需要注意编码问题。通常,文件名需要通过`URLEncoder.encode()`进行URL编码,以确保在HTTP请求中正确传输。在服务器端,使用`URLDecoder.decode()`解码文件名,以保持原始的中文字符。在Struts2中,可以这样做: ```java String decodedFileName = URLDecoder.decode(fileName, "UTF-8"); ``` 确保使用正确的字符集(如UTF-8),以避免乱码。 以上就是使用Struts2实现文件上传和下载的基本步骤,以及处理中文文件名的方法。在实际应用中,可能还需要考虑其他因素,例如错误处理、文件大小限制、安全性等。通过理解和实践这些基础知识,可以更好地在Struts2项目中实现文件操作功能。



















































- 1

- 龙少有约2013-09-25自己解决不了,所以找这个,不过还是没解决,谢谢分享~

- 粉丝: 2
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- PLC的矿井提升机变频调速系统设计方案.doc
- 第五章程序设计方法和上机调试.doc
- 春纪网络广告策划案.doc
- 基于单片机的智能型家居窗帘控制电路的设计.doc
- 热概念的冷反思-从关键词看互联网对电影制片的影响.docx
- 浅析自动化信息化生产及智能制造前景.docx
- 300道计算机应用基础试题(附答案).doc
- 微机原理接口技术第一章.ppt
- 《计算机科学导论》课程教学改革探究.docx
- 使用 OpenCV 与 ONNXRuntime 部署 YOLOV7 目标检测(含 14 个 onnx 模型及 C++ 和 Python 版本)
- 互联网金融对商业银行影响研究.doc
- 企业信息化平台建设关键问题分析.docx
- PLC直线插补课程方案设计书2011.doc
- 计算机技术的运用在学校档案管理中的应用分析.docx
- 数据库系统课程实施方案报告模板宋广鹏.doc
- 浅析电力工程档案信息化管理.docx


