使用struts2实现文件上传并在上传过程中为文件重新命名
来源:互联网 发布:093b核潜艇相关数据 编辑:程序博客网 时间:2024/06/04 18:05
在form标签中设置method="post" enctype="multipart/formdata"
2.编写Action
在Action中通过属性接收上传文件信息
3.配置fileUpload拦截器
设置文件长度和扩展名等限制
设置Action的input结果
4.编写message.properties
设置自定义错误提示信息
5.设置Struts常量,指定临时目录和资源文件等
关键代码:
<!-- 上传文件时保存临时文件的目录 -->
<constant name="struts.multipart.saveDir" value="D:\temp"/>
<!-- 上传文件请求的最大长度,不限制最大长度设置为-1 -->
<constant name="struts.multipart.maxSize" value="-1"/>
<!-- 设置资源文件 -->
<constant name="struts.custom.i18n.resources" value="message"/>
//需要先设置好对应的实体类
//更新图书
public class AddBookAction extends ActionSupport{
//接收编辑表单提交的数据
private Book book;
//接收上传的图片的临时文件(必须有的字段,字段名对应file元素的name属性)
private File upload;
//接收上传图片的原始文件名(字段名对应file元素的name属性+FileName)
private String uploadFileName;
@Override
public String execute() throws Exception {
//获得upload目录的绝对路径
ServletContext sc=ServletActionContext.getServletContext();
String uploadPath=sc.getRealPath("/upload");
//获得文件后缀
String extName=FilenameUtils.getExtension(uploadFileName);
//重新生成文件名
String newFileName=System.currentTimeMillis()+"."+extName;
//转存文件
FileUtils.copyFile(upload,new File(uploadPath+"/"+newFileName));
//将新文件名存入实体类
book.setPic(newFileName);
bookService.addBook(book);
return SUCCESS;
}
public Book getBook() {
return book;
}
//在填充表单数据的时候,Struts如果发现book是null,则会先创建一个Book对象通过set方法传入
public void setBook(Book book) {
this.book = book;
}
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
}
- 使用struts2实现文件上传并在上传过程中为文件重新命名
- 在Struts2中实现文件上传
- 在Struts2中实现文件上传
- 在Struts2中实现文件上传
- 在Struts2中实现文件上传
- 在struts2中实现文件上传(以图片上传为例)
- struts2中实现文件上传
- Struts2中实现文件上传
- 使用struts2和AJAX实现文件上传并显示进度条
- 使用struts2和AJAX实现文件上传并显示进度条
- Struts2文件上传的运行过程实现
- Struts2实现文件上传
- struts2实现文件上传
- struts2实现文件上传
- Struts2实现文件上传
- struts2实现文件上传
- struts2实现文件上传
- struts2实现文件上传
- Java常用类:时间日期类
- 强引用、弱引用和软引用
- Java 时间服务器demo之线程池
- javascript深入理解js闭包
- Android性能优化之如何避免Overdraw
- 使用struts2实现文件上传并在上传过程中为文件重新命名
- Android自助餐之Jni(三)动态导入so文件
- java对象的拷贝
- 《笨办法学Python》 第7课手记
- 浅谈ViewHolder
- 不懂Git,别说自己是程序猿–20分钟git快速上手
- HDOJ 1176 免费馅饼 (DP)
- 写出高效清晰Layout布局文件的一些技巧
- Scala 模式匹配下的for循环