分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

分享知识-快乐自己:Struts2文件上传及文件下载

发布时间:2023-09-06 02:18责任编辑:苏小强关键词:文件上传

1)Struts2单文件上传

action:类文件

package com.mlq.action;import com.opensymphony.xwork2.ActionSupport;import org.apache.commons.io.FileUtils;import org.apache.struts2.ServletActionContext;import java.io.File;import java.io.IOException;/** * Struts2:单文件上传 * * @author asus */public class UploadFileAction extends ActionSupport { ???//临时文件 ???private File upload; ???//文件类型(底层规定属性名称) ???private String uoloadContextType; ???//文件名称(底层规定属性名称) ???private String uploadFileName; ???//文件存放路径 ???private String savePath; ???@Override ???public void validate() { ???????System.out.println("严重方法"); ???} ???//默认访问方法 ???@Override ???public String execute() throws IOException { ???????//文件全路径 ???????File destFile = new ???????????????File(ServletActionContext.getRequest().getRealPath(savePath) + "\\" + getUploadFileName()); ???????String path = destFile.getPath(); ???????System.out.println(path + "------"); ???????FileUtils.copyFile(upload, destFile); ???????return "success"; ???} ???public String getSavePath() { ???????return savePath; ???} ???public void setSavePath(String savePath) { ???????this.savePath = savePath; ???} ???public File getUpload() { ???????return upload; ???} ???public void setUpload(File upload) { ???????this.upload = upload; ???} ???public String getUoloadContextType() { ???????return uoloadContextType; ???} ???public void setUoloadContextType(String uoloadContextType) { ???????this.uoloadContextType = uoloadContextType; ???} ???public String getUploadFileName() { ???????return uploadFileName; ???} ???public void setUploadFileName(String uploadFileName) { ???????this.uploadFileName = uploadFileName; ???}}

struts.xml:核心配置文件

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC ?"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ???????"http://struts.apache.org/dtds/struts-2.0.dtd"><struts> ???<package name="user" namespace="/user" extends="struts-default"> ???????<!--全局配置信息--> ???????<global-results> ???????????<result name="input">/upload.jsp</result> ???????</global-results> ???????<!--文件上传--> ???????<action name="upload" class="com.mlq.action.UploadFileAction"> ???????????<!--内置设定action类中的属性值--> ???????????<param name="savePath">/upload</param> ???????????<result>/upload.jsp</result> ???????????<!--设定文件参数--> ???????????<interceptor-ref name="fileUpload"> ???????????????<param name="maximumSize">512000</param> ???????????????<param name="allowedType">image/jpg</param> ???????????</interceptor-ref> ???????????<!--默认的拦截器--> ???????????<interceptor-ref name="defaultStack"></interceptor-ref> ???????</action> ???</package></struts>

upload.jsp:JSP页面

<%@ taglib prefix="s" uri="/struts-tags" %><%-- ?Created by IntelliJ IDEA. ?User: asus ?Date: 2018/10/4 ?Time: 10:32 ?To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %><html><head> ???<title>StrutsTow文件上传</title></head><body><div> ???<fieldset> ???????<legend>Struts2文件上传</legend> ???????<form action="/user/upload" enctype="multipart/form-data" method="post"> ???????????选择文件:<input type="file" name="upload"> ???????????<input type="submit" value="提交"> ???????</form> ???</fieldset> ???<br/><br/> ???<fieldset> ???????<legend>上传的图片回显</legend> ???????<img width="200px" height="300px" src="/upload/<s:property value=‘uploadFileName‘/>"/> ???</fieldset> ???<br/><br/> ???<fieldset> ???????<legend>错误信息</legend> ???????<s:fielderror></s:fielderror> ???</fieldset></div></body></html>

Web.xml:核心配置

 ???<!--核心控制器--> ???<filter> ???????<filter-name>struts2</filter-name> ???????<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> ???</filter> ???<filter-mapping> ???????<filter-name>struts2</filter-name> ???????<url-pattern>/*</url-pattern> ???</filter-mapping> ???<welcome-file-list> ???????<welcome-file>upload.jsp</welcome-file> ???</welcome-file-list>

2)Struts2多文件上传

action:类文件

package com.mlq.action;import com.opensymphony.xwork2.ActionSupport;import org.apache.commons.io.FileUtils;import org.apache.struts2.ServletActionContext;import java.io.File;import java.io.IOException;/** * Struts2:单文件上传 * * @author asus */public class UploadsFileAction extends ActionSupport { ???//临时文件 ???private File[] upload; ???//文件类型 ???private String[] uoloadContextType; ???//文件名称 ???private String[] uploadFileName; ???//文件存放路径 ???private String savePath; ???@Override ???public void validate() { ???????System.out.println("严重方法"); ???} ???//默认访问方法 ???@Override ???public String execute() throws IOException { ???????for (int i = 0; i < upload.length; i++) { ???????????File temp=upload[i]; ???????????//文件全路径 ???????????File destFile = new ???????????????????File(ServletActionContext.getRequest().getRealPath(savePath) + "\\" + uploadFileName[i]); ???????????String path = destFile.getPath(); ???????????System.out.println(path + "------"); ???????????FileUtils.copyFile(temp, destFile); ???????} ???????return "success"; ???} ???public File[] getUpload() { ???????return upload; ???} ???public void setUpload(File[] upload) { ???????this.upload = upload; ???} ???public String[] getUoloadContextType() { ???????return uoloadContextType; ???} ???public void setUoloadContextType(String[] uoloadContextType) { ???????this.uoloadContextType = uoloadContextType; ???} ???public String[] getUploadFileName() { ???????return uploadFileName; ???} ???public void setUploadFileName(String[] uploadFileName) { ???????this.uploadFileName = uploadFileName; ???} ???public String getSavePath() { ???????return savePath; ???} ???public void setSavePath(String savePath) { ???????this.savePath = savePath; ???}}

struts.xml:核心配置文件

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC ?"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ???????"http://struts.apache.org/dtds/struts-2.0.dtd"><struts> ???<!--全局总文件大小设置--> ???<constant name="struts.multipart.maxSize" value="5097152"/> ???<package name="user" namespace="/user" extends="struts-default"> ???????<!--全局配置信息--> ???????<global-results> ???????????<result name="input">/upload.jsp</result> ???????</global-results> ???????<!--文件上传--> ???????<action name="upload" class="com.mlq.action.UploadsFileAction"> ???????????<!--内置设定action类中的属性值--> ???????????<param name="savePath">/upload</param> ???????????<result>/upload.jsp</result> ???????????<!--设定文件参数--> ???????????<interceptor-ref name="fileUpload"> ???????????????<param name="maximumSize">512000</param> ???????????????<param name="allowedType">image/jpg</param> ???????????</interceptor-ref> ???????????<!--默认的拦截器--> ???????????<interceptor-ref name="defaultStack"></interceptor-ref> ???????</action> ???</package></struts>

upload.jsp:JSP页面

<%@ taglib prefix="s" uri="/struts-tags" %><%-- ?Created by IntelliJ IDEA. ?User: asus ?Date: 2018/10/4 ?Time: 10:32 ?To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %><html><head> ???<title>StrutsTow文件上传</title></head><body><div> ???<fieldset> ???????<legend>Struts2文件上传</legend> ???????<form action="/user/upload" enctype="multipart/form-data" method="post"> ???????????选择文件:<input type="file" name="upload"> ???????????<br/> ???????????选择文件:<input type="file" name="upload"> ???????????<br/> ???????????选择文件:<input type="file" name="upload"> ???????????<input type="submit" value="提交"> ???????</form> ???</fieldset> ???<br/><br/> ???<fieldset> ???????<legend>上传的图片回显</legend> ???????<s:iterator value="uploadFileName"> ???????????<img width="200px" height="300px" src="/upload/<s:property/>"/> ???????</s:iterator> ???</fieldset> ???<br/><br/> ???<fieldset> ???????<legend>错误信息</legend> ???????<s:fielderror></s:fielderror> ???</fieldset></div></body></html>

web.xml:核心配置

<!--核心控制器--> ?<filter> ???<filter-name>struts2</filter-name> ???<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> ?</filter> ?<filter-mapping> ???<filter-name>struts2</filter-name> ???<url-pattern>/*</url-pattern> ?</filter-mapping> ?<welcome-file-list> ???<welcome-file>upload.jsp</welcome-file> ?</welcome-file-list>

3)Struts2文件下载

action:类文件

package com.mlq.action;import com.opensymphony.xwork2.ActionSupport;import org.apache.struts2.ServletActionContext;import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.InputStream;/** * Struts2:文件下载 * * @author asus */public class FileDownAction extends ActionSupport { ???/*** ????* 读取下载文件的目录 ????*/ ???private String inputPath; ???/*** ????* 下载文件的文件名 ????*/ ???private String fileName; ???/*** ????* 读取下载文件的输入流 ????*/ ???private InputStream inputStream; ???public String getInputPath() { ???????return inputPath; ???} ???public void setInputPath(String inputPath) { ???????this.inputPath = inputPath; ???} ???public String getFileName() { ???????return fileName; ???} ???public void setFileName(String fileName) { ???????this.fileName = fileName; ???} ???public InputStream getInputStream() throws FileNotFoundException { ???????String realPath = ???????????????ServletActionContext.getServletContext().getRealPath(inputPath); ???????System.out.println(realPath+"\\"+fileName); ???????return new BufferedInputStream(new FileInputStream(realPath+"\\"+fileName)); ???} ???public void setInputStream(InputStream inputStream) { ???????this.inputStream = inputStream; ???}}

struts.xml:核心配置文件

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC ?"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ???????"http://struts.apache.org/dtds/struts-2.0.dtd"><struts> ???<package name="user" namespace="/user" extends="struts-default"> ???????<!--文件上传--> ???????<action name="downLoad" class="com.mlq.action.FileDownAction"> ???????????<!--指定文件下载目录地址--> ???????????<param name="inputPath">/upload</param> ???????????<!--设置下载类型--> ???????????<result name="success" type="stream"> ???????????????<!--设置发送到浏览器的MIMe类型--> ???????????????<param name="contentType">application/octet-stream</param> ???????????????<!--设置输入流的名称--> ???????????????<param name="inputStream">inputStream</param> ???????????????<!--提示用户打开还是下载--> ???????????????<param name="contentDisposition">attachment;filename="${fileName}"</param> ???????????????<!--缓冲区的大小:没有严格要求可随意设置--> ???????????????<param name="bufferSize">4096</param> ???????????</result> ???????</action> ???</package></struts>

index.jsp

<%@ taglib prefix="s" uri="/struts-tags" %><%-- ?Created by IntelliJ IDEA. ?User: asus ?Date: 2018/10/4 ?Time: 10:32 ?To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %><html><head> ???<title>StrutsTow文件下载</title></head><body><div> ???<fieldset> ???????<legend>Struts2文件下载</legend> ???????<a href="/user/downLoad?fileName=t01a4036c8714c169fd.jpg">文件下载</a> ???</fieldset></div></body></html>

web.xml核心配置

<!--核心控制器--> ?<filter> ???<filter-name>struts2</filter-name> ???<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> ?</filter> ?<filter-mapping> ???<filter-name>struts2</filter-name> ???<url-pattern>/*</url-pattern> ?</filter-mapping>

 

分享知识-快乐自己:Struts2文件上传及文件下载

原文地址:https://www.cnblogs.com/mlq2017/p/9790232.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved