Struts基础学习-文件上传与下载
来源:互联网 发布:转基因食品利弊 知乎 编辑:程序博客网 时间:2024/05/16 01:19
文件上传
简单文件上传
jsp页面
<s:form action="uploadPro" enctype="multipart/form-data"> <s:textfield name="title" label="文件标题" /><br/> <s:file name="upload" label="选择文件" /><br /> <s:submit value="上传" /></s:form>
action文件
public class UploadAction extends ActionSupport{ private String title; private File upload; //上传文件类型 private String uploadContentType; //上传文件名 private String uploadFileName; //配置文件保存属性 private String savePath;public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public File getUpload() {return upload;}public void setUpload(File upload) {this.upload = upload;}public String getUploadContentType() {return uploadContentType;}public void setUploadContentType(String uploadContentType) {this.uploadContentType = uploadContentType;}public String getUploadFileName() {return uploadFileName;}public void setUploadFileName(String uploadFileName) {this.uploadFileName = uploadFileName;}public String getSavePath() {return ServletActionContext.getServletContext().getRealPath("/WEB-INF/"+savePath);}public void setSavePath(String savePath) {this.savePath = savePath;}public String execute() throws Exception{FileOutputStream fos=new FileOutputStream(getSavePath()+"\\"+getUploadFileName());FileInputStream fis=new FileInputStream(getUpload());byte[] buffer=new byte[1024];int len=0;while((len=fis.read(buffer))>0){fos.write(buffer,0,len);}return SUCCESS;} }
配置文件
<action name="uploadPro" class="app.action.UploadAction"> <param name="savePath">/upload</param> <result name="success">/welcome.jsp</result></action>
Struts上传文件还是比较简单,只需要在action中申明File属性与其关联,即可。
文件过滤
手动过滤
JAVA文件中
public void validate(){String filterResult=filterTypes(getAllowTypes().split(","));if(filterResult!=null){addFieldError("upload", "上传文件类型不正确");}}public String filterTypes(String[] types){String fileType=getUploadContentType();for(String type:types){if(type.equals(fileType)){return null;}}return ERROR;}
并在配置文件中配置类型
<action name="uploadPro" class="app.action.UploadAction"> <param name="savePath">/upload</param> <param name="allowTypes">image/png,image/gif,img/jpeg</param> <result name="success">/welcome.jsp</result> <result name="error">/error.jsp</result> <result name="input">/input.jsp</result></action>
如果没通过校验,则在input.jsp页面中通过<s:fielderror />输出异常信息。
拦截器过滤
<action name="uploadPro" class="app.action.UploadAction"> <!-- 配置fileUpload的拦截器 --> <interceptor-ref name="fileUpload"> <param name="allowedTypes">image/png,image/gif,img/jpeg,img/jpg</param> <!-- 单位为字节 --> <param name="maximumSize">200</param> </interceptor-ref> <!-- 配置系统默认的拦截器 --> <interceptor-ref name="defaultStack" /> <param name="savePath">/upload</param> <result name="success">/welcome.jsp</result> <result name="error">/error.jsp</result> <result name="input">/input.jsp</result></action>
在配置文件配置即可。
在过滤文件时,必须显示配置默认的拦截器 defaultStack 并且fileUplaod拦截器必须在defaultStack之前。
文件下载
简单下载实例
public class FileDownAction extends ActionSupport{ private String inputPath;public String getInputPath() {return inputPath;}public void setInputPath(String inputPath) {this.inputPath = inputPath;} public InputStream getTargetFile(){return ServletActionContext.getServletContext().getResourceAsStream(inputPath);}}
<action name="download" class="app.action.FileDownAction"> <!-- 指定文件下载地址 --> <param name="inputPath">\images\权限管理功能说明.doc</param> <result name="success" type="stream"> <!-- 指定文件下载类型 --> <param name="contentType">doc</param> <!-- 返回下载文件的信息 --> <param name="inputName">targetFile</param> <param name="contentDisposition">filename="sfsfsfs.doc"</param> <!-- 指定文件缓冲大小 --> <param name="bufferSize">4096</param> </result> </action>
- Struts基础学习-文件上传与下载
- struts 学习总结 ---- 文件上传与下载
- Struts文件上传与下载
- struts文件上传与下载
- 【转载】struts 学习总结 ---- 文件上传与下载
- java框架Struts学习--文件上传与下载
- struts 实现文件上传与下载
- struts 实现文件上传与下载
- struts 实现文件上传与下载
- struts 实现文件上传与下载
- struts 实现文件上传与下载
- struts 实现文件上传与下载
- struts 1.2 文件上传与下载
- struts 实现文件上传与下载
- Struts实现文件上传与下载
- 文件上传与下载—>struts
- 基于struts的文件上传与下载
- struts文件上传与下载简单DEMO
- 肿么学习PHP 我是转载滴
- 数据表示
- 自制能使用U盘引导的程序(二)
- 单机情况下,IE浏览器访问activeX控件出现红叉问题的解决
- /proc/sysrq-trigger使用说明
- Struts基础学习-文件上传与下载
- Struts2高危漏洞修复方案(S2-016/S2-017)
- 字节序问题--大端法小端法
- [LeetCode] Maximum Subarray、Edit Distance
- 统计分组中多列数据
- Android防止内存泄漏以及MAT的使用
- 简单添加Web服务引用---天气预报
- [leetcode刷题系列]Populating Next Right Pointers in Each Node II
- WinCE触摸校准界面的方法