struts2学习之文件的上传与下载
来源:互联网 发布:国外虚拟手机号软件 编辑:程序博客网 时间:2024/06/16 18:46
单文件上传
SingleUploadAction.java
public class SingleUploadAction extends ActionSupport implements Serializable { private static final long serialVersionUID = -1732593542292662802L; //对应表单输入域name="image",Struts2框架会封装成File类型的 private File image; //上传文件的名称,自定义的image和FileName的组合,由struts封装 private String imageFileName; //上传文件的MIME类型,自定义的image和ContentType的组合,由struts封装 private String imageContentType; public String singleUpload() { try { //得到文件名 String filename = this.imageFileName; //得到ServletContext对象的引用 ServletContext context = ServletActionContext.getServletContext(); //构建存储路径 String savepath = context.getRealPath("/upload"); //读写入数据,把上传文件拷贝到新建目录 FileUtils.copyFile(image, new File(savepath, filename)); ActionContext.getContext().put("message", "上传成功!"); return SUCCESS; } catch (Exception e) { e.printStackTrace(); ActionContext.getContext().put("message", "上传失败!"); return ERROR; } } public File getImage() { return image; } public void setImage(File image) { this.image = image; } public String getImageFileName() { return imageFileName; } public void setImageFileName(String imageFileName) { this.imageFileName = imageFileName; } public String getImageContentType() { return imageContentType; } public void setImageContentType(String imageContentType) { this.imageContentType = imageContentType; }}
upload.jsp
普通单文件上传表单
<b>普通表单单文件上传</b><br/><form action="${pageContext.request.contextPath }/upload/singleupload" method="post" enctype="multipart/form-data"> 文件:<input type="file" name="image"/><br/> <input type="submit" value="上传"></form>
struts2单文件上传表单
<b>struts表单单文件上传</b><s:form action="singleupload" namespace="/upload" enctype="multipart/form-data"> <s:file name="image" label="文件"></s:file> <s:submit value="上传"/></s:form>
两个表单都必须添加enctype=”multipart/form-data”属性,否则会出错,无法上传。最好在里也添加method=”post”,不易出问题。
struts.xml
省略DTD部分。
<!-- 限制文件上传大小5M --><constant name="struts.multipart.maxSize" value="5242880"></constant><package name="upload" namespace="/upload" extends="struts-default"> <action name="singleupload" class="com.struts2.action.example.SingleUploadAction" method="singleUpload"> <result name="success">/WEB-INF/jsp/success.jsp</result> </action> </package>
回执页面uploadsuccess.jsp
文件名:<s:property value="imageFileName"/><br>文件类型:<s:property value="imageContentType"/><br/><br/>
多文件上传
MoreUploadAction.java
public class MoreUploadAction extends ActionSupport implements Serializable { private static final long serialVersionUID = 7962335953329769349L; private File images[]; private String[] imagesFileName; private String[] imagesContentType; public File[] getImages() { return images; } public void setImages(File[] images) { this.images = images; } public String[] getImagesFileName() { return imagesFileName; } public void setImagesFileName(String[] imagesFileName) { this.imagesFileName = imagesFileName; } public String[] getImagesContentType() { return imagesContentType; } public void setImagesContentType(String[] imagesContentType) { this.imagesContentType = imagesContentType; } public String moreUpload() { try { if(images!=null&&images.length>0){ //得到ServletContext对象的引用 ServletContext sc = ServletActionContext.getServletContext(); //构建存储路径 String storePath = sc.getRealPath("/files"); for(int i=0;i<images.length;i++) FileUtils.copyFile(images[i], new File(storePath,imagesFileName[i])); } ActionContext.getContext().put("message", "上传成功!"); return SUCCESS; } catch (Exception e) { e.printStackTrace(); ActionContext.getContext().put("message", "上传失败!"); return ERROR; } }}
即将属性改为数组即可。
upload.jsp
普通多文件上传表单
<b>普通表单多文件上传</b><form action="${pageContext.request.contextPath }/upload/moreupload" method="post" enctype="multipart/form-data"> 文件:<input type="file" name="images"/><br/> 文件:<input type="file" name="images"/><br/> 文件:<input type="file" name="images"/><br/> <input type="submit" value="上传"></form>
struts2多文件上传表单
<b>struts表单多文件上传</b><s:form action="moreupload" namespace="/upload" method="post" enctype="multipart/form-data"> <s:file name="images" label="文件"></s:file> <s:file name="images" label="文件"></s:file> <s:file name="images" label="文件"></s:file> <s:submit value="上传"/></s:form>
struts.xml
<action name="moreupload" class="com.struts2.action.example.MoreUploadAction" method="moreUpload"> <result name="success">/WEB-INF/jsp/success.jsp</result></action>
文件下载
客户端用户右键选择“另存为…”来下载,在回执页面添加如下代码:
<p>文件下载</p><s:a href="%{imageFileName}">普通下载[右键另存为]</s:a>
以上。。。
0 0
- Struts2学习笔记之文件的上传与下载
- Struts2学习笔记之文件的上传与下载
- struts2学习之文件的上传与下载
- Struts2之实现文件上传与下载
- Struts2之实现文件上传与下载
- Struts2之实现文件上传与下载
- 七、Struts2之文件上传与下载
- Struts2之文件上传与下载
- struts2.3.15之文件上传与下载
- Struts2之文件上传与下载
- Struts2之文件上传与下载
- struts2学习笔记(六)文件上传与下载(下)基于Struts2的文件上传与下载
- Struts2文件的上传的与下载
- struts2 实现文件的上传与下载
- struts2实现文件的上传与下载
- struts2 的文件上传与下载
- struts2文件的上传与下载
- Struts2文件的上传与下载
- 人脸识别之PCA
- mfc使用动态库中类的问题
- Activity状态
- cocos2dx shader应用——sprite变灰
- IOS 返回事件 UIBarButtonItem (一) 自定义backBarButtonItem
- struts2学习之文件的上传与下载
- 字符串匹配之KMP算法
- 在线工具
- p123 28
- Activity中添加了布局文件界面不显示
- Git / SourceTree 使用
- nstall OPAM on Springdale/RHEL/CentOS/SL 5.X
- "Linux设备驱动开发详解" 笔记
- C#批量进制转换工具