struts2文件上传
1.创建项目,添加struts2的支持,然后:
代码:FileUpload类完成文件上传:
package com.myphome;
import java.io.File;
import java.util.UUID;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
/**
* struts2文件上传处理类
* */
public class FileUpload {
private File upload;//保存上传的文件,必须和页面上传“type="file""的name相同
private String uploadFileName;//保存上传的文件名称,必须为“name”+FileName
private String uploadContentType;//保存上传的文件类型,必须为“name”+ContentType
//提供属性的set、get方法
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;
}
public String getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
public String uploadFile() throws Exception{
//获取文件上传的类型,实现文件类型安全验证
if(!(uploadContentType.equalsIgnoreCase("image/pjpeg")||uploadContentType.equalsIgnoreCase("image/gif")||uploadContentType.equalsIgnoreCase("image/x-png"))){
ActionContext.getContext().put("message", "文件格式不正确");
return Action.SUCCESS;
}
System.out.println(uploadContentType);
if(upload!=null){
//上传文件在服务器上的保存位置
String strfolder=ServletActionContext.getServletContext().getRealPath("/images");
System.out.println(strfolder);
File folder=new File(strfolder);
if(folder.exists()==false){
folder.mkdir();
}
//更换上传文件名
String ext=uploadFileName.substring(uploadFileName.lastIndexOf("."));
String newFileName=UUID.randomUUID().toString()+ext;
System.out.println(newFileName);
//设置目标对象
File dest=new File(folder, newFileName);
//把临时文件拷贝到目标文件
FileUtils.copyFile(upload, dest);
//设置视图提示内容
ActionContext.getContext().put("message", "文件上传成功");
}
return Action.SUCCESS;
}
}
struts.xml配置:
?xml version="1.0" encoding="UTF-8" ?
!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"
struts
!-- 此属性规定了struts2文件上传的内容允许 的最大字节数 --
constant name="struts.multipart.maxSize" value="2097152" /constant
package name="load" namespace="/struts" extends="struts-default"
action name="upload" method="uploadFile"
result name="success" type="dispatcher" /index.jsp /result
/action
/package
/struts
界面:
%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%
%@ taglib uri="/struts-tags" prefix="s"%
%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
html
head
base href=" %=basePath% "
title struts2文件上传 /title
meta http-equiv="pragma" content="no-cache"
meta http-equiv="cache-control" content="no-cache"
meta http-equiv="expires" content="0"
meta http-equiv="keywords" content="keyword1,keyword2,keyword3"
meta http-equiv="description" content="This is my page"
!--
link rel="stylesheet" type="text/css" href="styles.css"
--
/head
body
s:if test="%{message==null}"
span 文件格式必须为图片,大小不大于2G /span
/s:if
s:if test="%{message!=null}"
${message}
/s:if
form action="${pageContext.request.contextPath}/struts/upload" method="post" enctype="multipart/form-data" name="formup" id="formup"
上传文件: input type="file" name="upload" id="upload"
input type="submit" name="submit" value="确认上传"
/form
/body
/html
struts2的文件上传 在做B/S系统时,通常会涉及到上传文件和下载文件,在没接struts2框架之前,我们都是使用apache下面的commons子项目的FileUpload组件来进行文件的上传,但是那样做的话,代码看起来比较繁琐,而且不灵活,在学习了struts2后,struts2为文件上传下载提供了更好的实现机制,在...
Struts2文件上传 1 在Struts2中上传文件需要 commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar 这两个包。 2 确认页面form表单上的提交方式为POST,enctype属性的值为“multipart/form-data”。
相关文章
- 大文件上传和断点续传_文件断点续传实现的思路
- nginx+php 上传大文件
- ThinkPHP6.0内置文件上传封装类
- 文件上传之.user.ini文件漏洞利用
- 【Java 虚拟机原理】Class 字节码二进制文件分析 二 ( 常量池位置 | 常量池结构 | tag | info[] | 完整分析字节码文件中的常量池二进制数据 )
- Linux下如何不停止服务,清空nohup.out文件详解程序员
- Python文件、目录的一些操作(新增、移动、删除)详解编程语言
- SpringMVC上传文件详解编程语言
- Struts2文件的上传与下载详解编程语言
- node.js上传文件详解编程语言
- ES文件浏览器下载 ES文件浏览器 v4.0.4.1 去广告优化版
- Linux本地文件快速上传方式(linux本地文件上传)
- 缩文件Linux系统解压缩文件快捷技巧(linux系统解压)
- MongoDB实现文件上传功能(mongodb上传文件)
- 【Linux挂载:更安全的文件存储】(linux挂载什么意思)
- Linux日志清理攻略:25字内告诉你如何清理大量日志文件(清理Linuxlog)
- Linux 下拷贝文件的最佳命令(linux 拷贝文件命令)
- 文件Redis实现大文本文件记录(redis记录大文本)
- ASP.NET通过Remotingservice上传文件
- 文件上传程序的全部源码
- jsp文件上传浏览,支持ie6,ie7,ie8
- phpUTF8文件的签名问题
- struts2中实现多个文件同时上传代码
- php文件上传的简单实例
- 不安装excel使用c#创建excel文件