Struts基础学习-文件上传与下载
2013-08-11 17:15
417 查看
文件上传
简单文件上传
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>
相关文章推荐
- Struts2基础学习(六)—文件的上传和下载
- Struts学习之 实现文件上传、下载操作
- struts 学习总结 ---- 文件上传与下载
- java框架Struts学习--文件上传与下载
- php学习基础-文件系统(三) 文件夹的相关操作、php文件上传、php文件下载
- Struts学习笔记: 实现文件上传下载
- Struts2————学习笔记6 文件的上传与下载 以及AJAX
- 【转载】struts 学习总结 ---- 文件上传与下载
- salesforce 零基础学习(四十二)简单文件上传下载
- 学习笔记:基础+文件操作(上传|下载)+面向对象+xml
- Struts实现简单的文件下载(继上一篇文件上传)
- struts实现文件上传下载
- struts1文件上传和下载 连接 使用Struts1实现文件上传(二)
- Struts2.0实现的文件上传(单附件和多附件)以及附件下载功能
- 帮帮忙了,我是初学者在学习Struts2时关于文件上传时的错误,不知道怎么去改了,让我花费一下午的时间还是不对,一直提示我配置不对
- JavaWeb学习记录(二十三)——文件上传与下载
- 微信学习笔记之四(媒体文件的上传与下载)
- struts实现文件上传与下载
- java 从零开始,学习笔记之基础入门<servlet_文件下载>(二十七)
- Node.js学习过程总结(三)之文件上传和下载