首页 > 代码库 > struts2文件上传/文件下载
struts2文件上传/文件下载
文件上传
1 import java.io.File; 2 3 import org.apache.struts2.ServletActionContext; 4 5 import com.opensymphony.xwork2.ActionSupport; 6 7 public class Upload2Action extends ActionSupport { 8 9 private String username; 10 private File[] photo; 11 12 private String[] photoFileName;// 用来存储上传的文件名,命名规范:表单属性名+FileName 13 private String[] photoContentType;// 上传文件的MIME类型 jpg gif image/pjpeg 14 // image/gif 15 16 public String getUsername() { 17 return username; 18 } 19 20 public void setUsername(String username) { 21 this.username = username; 22 } 23 24 public File[] getPhoto() { 25 return photo; 26 } 27 28 public void setPhoto(File[] photo) { 29 this.photo = photo; 30 } 31 32 public String[] getPhotoFileName() { 33 return photoFileName; 34 } 35 36 public void setPhotoFileName(String[] photoFileName) { 37 this.photoFileName = photoFileName; 38 } 39 40 public String[] getPhotoContentType() { 41 return photoContentType; 42 } 43 44 public void setPhotoContentType(String[] photoContentType) { 45 this.photoContentType = photoContentType; 46 } 47 48 public String upload() { 49 50 // 创建服务器端存储文件的位置 51 String path = ServletActionContext.getServletContext().getRealPath("/WEB-INF/upload"); 52 File dir = new File(path); 53 if (!dir.exists()) { 54 dir.mkdirs(); 55 } 56 57 // 把临时文件剪切到upload下 58 for (int i = 0; i < photo.length; i++) { 59 photo[i].renameTo(new File(dir, photoFileName[i])); 60 61 } 62 63 return "success"; 64 } 65 66 }
xml配置
<action name="upload" class="com.web.action.UploadAction" method="upload"> <!-- 设置上传的文件的扩展名类型 <interceptor-ref name="defaultStack"> <param name="fileUpload.allowedExtensions">jpg,gif,png</param> </interceptor-ref> --> <!-- 设置上传文件的MIME类型 --> <interceptor-ref name="defaultStack"> <param name="fileUpload.allowedTypes">image/jpeg,image/gif,image/png</param> </interceptor-ref> <result name="success">/success.jsp</result> <result name="input">/uplode.jsp</result> </action>
文件下载
1 import java.io.FileInputStream; 2 import java.io.FileNotFoundException; 3 import java.io.InputStream; 4 5 import org.apache.struts2.ServletActionContext; 6 7 import com.opensymphony.xwork2.ActionSupport; 8 9 //实现文件下载 10 public class DownLoadAcion extends ActionSupport { 11 12 private InputStream inputStream;// 注意:该成员变量名不能叫in 13 private String filename; 14 15 public String getFilename() { 16 return filename; 17 } 18 19 public void setFilename(String filename) { 20 this.filename = filename; 21 } 22 23 public InputStream getInputStream() { 24 return inputStream; 25 } 26 27 public void setInputStream(InputStream inputStream) { 28 this.inputStream = inputStream; 29 } 30 31 public String download() throws FileNotFoundException { 32 33 // 设置被下载的文件的路径 34 String path = ServletActionContext.getServletContext().getRealPath("/WEB-INF/upload/struts-default.xml"); 35 36 // 创建读取被下载文件的字节读取流 37 inputStream = new FileInputStream(path); 38 39 filename = "图片.jpg"; 40 41 // 接下来读取文件并写入到客户端不需要自己实现,都被结果类型stream实现了 42 43 return "success"; 44 } 45 46 }
xml配置
1 <action name="download" class="com.web.action.DownLoadAcion" method="download"> 2 <result type="stream"> 3 <param name="inputName">inputStream</param> 4 <param name="contentType">application/octet-stream</param> 5 <!-- 通知浏览器去下载 --> 6 <param name="contentDisposition">attachment;filename=${@java.net.URLEncoder@encode(filename,"UTF-8")}</param> 7 </result> 8 </action>
struts2文件上传/文件下载
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。