action代码:
package action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import org.apache.struts2.ServletActionContext;
import util.MyUUID;
public class UpAction1 extends BaseAction{
private File upload;//表单name属性
private String uploadContentType;//该名字是在upload基础上扩展的
private String uploadFileName;//文件名
private String filename1;//新文件名
public String execute() throws Exception{
// 获得上传路径
String newName=MyUUID.getUUID()+uploadFileName.substring(uploadFileName.indexOf("."));//新名字
// String filename = ServletActionContext.getServletContext().getRealPath(
// "/uploads")+ "//" + uploadFileName;
filename1=newName;
String filename = ServletActionContext.getServletContext().getRealPath(
"/uploads")+ "//" + newName;
// 流操作
InputStream is=new FileInputStream(getUpload());
OutputStream os=new FileOutputStream(filename);
byte[] b=new byte[1024000];
int len=0;
while((len=is.read(b))>0){
os.write(b, 0, len);
}
os.close();
is.close();
return SUCCESS;
}
//---
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
public String getFilename1() {
return filename1;
}
public void setFilename1(String filename1) {
this.filename1 = filename1;
}
}
jsp代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
</head>
<body>
<form action="upAction1" method="post" enctype="multipart/form-data">
选择文件<input type="file" name="upload"/>
<input type="submit" value="上传"/>
</form>
</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
</head>
<body>
<h3>上传成功</h3>
<img src="uploads/${filename1}">
</body>
</html>
配置action:
<action name="upAction1" class="action.UpAction1">
<result name="success">/up1ok.jsp</result>
<result name="input">/up1.jsp</result>
<interceptor-ref name="fileUpload">
<param name="allowedExtensions">.jpg,.png,.gif</param>
<param name="maximumSize">1024000</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/>
</action>
重命名工具类:
package util;
import java.util.UUID;
public class MyUUID {
public static String getUUID(){
return UUID.randomUUID().toString();
}
/**
* uuid
* 表示通用惟一标识符 (UUID) 的类。 UUID 表示一个 128 位的值
* 即是说,当前生成的字符串,是绝对不会重复的
*/
public static void main(String[] args) {
UUID uuid=UUID.randomUUID();
System.out.println(uuid.toString().replace("-", ""));
}
}