(1) jar包
commons-fileupload-1.2.1.jar
commons-io-2.0.1.jar
commons-logging-1.1.jar
commons-pool-1.2.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.11.jar
xwork-2.0.4.jar
(2) js包
jquery[1].form.js
jquery-1.4.2.min.js
(3)前台
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<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">
<script type="text/javascript" src="./js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="./js/jquery[1].form.js"></script>
<script type="text/javascript">
function uploadImage() {
$(document)
.ready(
function() {
var options = {
url : "fileUpload.action?",
type : "POST",
dataType : "json",
success : function(msg) {
if (msg != null)
{
window.alert(msg.msg);
}
}
};
$("#form2").ajaxSubmit(options);
return false;
});
}
</script>
</head>
<body>
<center>
<form id = "form2" method="post" enctype="multipart/form-data">
<table width="400" border="1" cellspacing="1" cellpadding="10">
<input type = "hidden" name = "id" id = "id" value = "-1"/>
<input type="hidden" name="upUserId" id = "upUserId" value="11"/>
<tr>
<select name="itemType" id="itemType">
<option value="11">aaaaa
</option>
</select>
</tr>
<tr>
<td height="25">
浏览图片:
</td>
<td>
<input id="eleImage" name="eleImage" type="file" />
<div id="tipDiv"></div>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="button" class="right-button02"
οnclick="uploadImage()" value="上传" />
</td>
</tr>
</table>
</form>
<br>
图片预览
<div id="showImage"></div>
</center>
</body>
</html>
(4) 后台代码
package com.aokunsang.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class FileUploadAction extends ActionSupport {
private File eleImage;
private String eleImageContentType;
private String eleImageFileName;
public void upload() throws Exception{
String message = "";
ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
ServletActionContext.getResponse().setCharacterEncoding("utf-8");
if(eleImageFileName.endsWith(".exe"))
{
message = "禁止上传该类文件!";
}
else if(!eleImage.exists())
{
message = "此文件不存在!";
}
else
{
FileInputStream fis = new FileInputStream(eleImage);
int available = fis.available();
byte[] bytes = new byte[available];
while (fis.read(bytes) != -1)
{
available = available + fis.available();
if (bytes.length < available)
{
byte[] temp = bytes;
bytes = new byte[available];
System.arraycopy(temp, 0, bytes, 0, temp.length);
}
}
//========bytes 中已经有了数据
message = "上传成功!";
}
ServletActionContext.getResponse().getWriter().write("{msg:\""+message+"\"}");
ServletActionContext.getResponse().getWriter().flush();
ServletActionContext.getResponse().getWriter().close();
}
public File getEleImage() {
return eleImage;
}
public void setEleImage(File eleImage) {
this.eleImage = eleImage;
}
public String getEleImageContentType() {
return eleImageContentType;
}
public void setEleImageContentType(String eleImageContentType) {
this.eleImageContentType = eleImageContentType;
}
public String getEleImageFileName() {
return eleImageFileName;
}
public void setEleImageFileName(String eleImageFileName) {
this.eleImageFileName = eleImageFileName;
}
}
(5) struts配置
<?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>
<package namespace="/" name="root" extends="struts-default">
<action name="fileUpload" class="com.aokunsang.action.FileUploadAction" method="upload">
<interceptor-ref name="fileUploadStack"></interceptor-ref>
</action>
</package>
</struts>