1.上传
分三步:(1)导入相应的jar包commons-fileupload-1.2.1.jar,commons-io-1.2.1.jar。
(2)设置form表的enctype="multipart/form-data"属性
(3)在action中添加以下属性:
private File image;//文件
private String imageFileName;//文件名
实例:jsp文件:
<body style="background-image: url(../css/img/background.png);" >
<form action="upload.action" namespace="/admin" enctype="multipart/form-data" method="post" theme="simple">
文件:<input type="file" name="image"/>
<input type="submit" value="上传"/>
</form>
</body>
struts.xml配置文件:
<action name="upload" class="uploadAction" >
<result name="success">/admin/message.jsp</result>
</action>
action类:
import com.opensymphony.xwork2.ActionContext;
public class UploadAction {
private File image;//和JSP的name属性一致,类型为File
private String imageFileName;//文件名,必须是name属性+FileName
private UploadService uploadService;
private UploadFile uploadFile;//自定义一个实体类保存上传文件
public String execute() throws Exception{
String realPath = ServletActionContext.getServletContext().getRealPath("/upload");
System.out.println("保存地址:"+realPath);
if(image != null){
File saveFile = new File(new File(realPath),imageFileName);
System.out.println("文件名:"+imageFileName);
if(!saveFile.getParentFile().exists()) saveFile.getParentFile().mkdirs();
FileUtils.copyFile(image, saveFile);
uploadFile = new UploadFile();
uploadFile.setfPath(realPath);
uploadFile.setfName(imageFileName);
uploadService.saveFile(uploadFile);//保存至数据库
ActionContext.getContext().put("message", "上传成功!");
}
return "success";
}
//getter/setter....
}
至此基本完成上传功能
2.下载
将文件名从数据库取出来并迭代在JSP页面:
<s:iterator value="list" var="l">
<tr>
<td>${l.fName}</td>
<td><a href="../employee/down.action?fileName=${l.fName}" >下载</a></td>
</tr>
</s:iterator>
strut2.xml文件配置:
<!--下载文件 -->
<action name="down" class="downFileAction" >
<result name="success" type="stream">
<!-- 指定下载文件的内容类型,text/plain是默认类型 -->
<param name="contentType">${contentType}</param>
<!-- inputName默认值是inputStream,如果action中用于读取下载文件内容的属性名是inputStream,那么可以省略这个参数 -->
<param name="inputName">inputStream</param>
<!--动态获取文件名,从Action中的取得filename-->
<param name="contentDisposition">
attachment;fileName="${fileName}"
</param>
<param name="bufferSize">4096</param>
</result>
</action>
action类:
public class DownFileAction extends BaseAction{
private String fName;
private String contentType;
private String inputPath;
private String fileName;
public InputStream getInputStream() throws UnsupportedEncodingException{
byte[] cc = fileName.getBytes("iso-8859-1");
fName = new String(cc,"utf-8");
System.out.println("请求地址:"+"/upload/"+fName);
return ServletActionContext.getServletContext().getResourceAsStream("/upload/"+fName);
}
public String execute(){
System.out.println("fileName:"+fileName);
return "success";
}
//getters和setters
}
至此,下载功能基本完成
分享到:
相关推荐
struts2文件上传和下载 struts2文件上传和下载 struts2文件上传和下载 struts2文件上传和下载 struts2文件上传和下载
在struts2基础上实现的包括单文件、多文件的上传及下载
struts2中的文件上传和下载示例 struts2中的文件上传和下载示例 struts2中的文件上传和下载示例
Struts2中文件上传与下载案例
Struts2 文件上传下载 多文件 单文件 实例;支持单个或多个文件的上传下载,并且自定义上传文件的大小和类型!!!
struts2 文件上传和下载struts2 文件上传和下载
struts2文件上传与下载,eclipse与myeclipse导入即可使用的代码,简单易懂,希望对你有帮助,喜欢的给个五星评价,谢谢!!!
http://blog.csdn.net/johnjobs/article/details/8076832博文中附件的下载链接
Struts文件的上传和下载Struts文件的上传和下载Struts文件的上传和下载
struts2文件上传struts2文件上传struts2文件上传struts2文件上传struts2文件上传struts2文件上传struts2文件上传struts2文件上传
Struts2文件上传和下载教程
Struts2文件上传下载和表单重复提交问题
3.Struts2进行下载处理,能对上传的所有文件进行下载(多个) 4.文件保存的名称UUID生成,不过显示并下载的名称都是原文件名称 (通过UploadFiles处理) 5.对配置文件中的路径可以进行动态读取(不重启服务器) ...
Struts2文件上传源码 Struts2文件上传源码 Struts2文件上传源码 Struts2文件上传源码 Struts2文件上传源码
struts2 文件上传 struts2上传标签file fileuploadstruts2 文件上传 struts2上传标签file fileuploadstruts2 文件上传 struts2上传标签file fileupload
struts2文件上传与下载, <s:fielderror></s:fielderror> 文件"></s:file> <s:submit id="submit" value="sbumit"></s:submit> </s:form>
struts2的文件上传和文件下载的代码,出品必属精品
struts实现的文件上传下载功能,最大可以上传到150MB
struts1和struts2分别实现文件上传下载功能