$.ajaxFileUpload用于文件的上传.
图片上传:
//上传图片
$("#buttonUpload").click(function(){
$.ajaxFileUpload({
url:basepath + 'ImageUpload', //调用方法
secureuri:false,
fileElementId:'actImageUp', //界面id
dataType: 'json',
success: function (data, status) {
if (data.state == "SUCCESS") {
// 上传图片成功
//$("#noticePic").val(data.src);
$("#noticePic").val(data.imageName);
} else {
$('#result').html('上传图片失败, 失败原因:'+data.state);
}
},
error: function (data, status, e) {
$('#result').html('上传图片失败');
}
});
});
jsp:
加入:
<script type="text/javascript" src="<%=basePath%>/PUBLISH/scripts/jquery.ajaxfileupload.js"></script>
<div id="result" style="FONT:12px 宋体"></div>
<input type="file" name="actImageUp" id="actImageUp" style="width: 63px;"/>
<input name=noticePic id="noticePic" readonly="readonly" style="width:133px;" ></input>
servelt:
package com.fjxhx.business.notice.servlet;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.util.Streams;
public class ImageUpload extends HttpServlet {
public ImageUpload() {
super();
}
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
String realDir = request.getSession().getServletContext().getRealPath(
"");
String contextpath = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName()
+ ":" + request.getServerPort() + contextpath + "/";
try {
String filePath = "../uploadfiles";
String realPath = realDir + "/" + filePath;
System.out.println(realPath);
//判断路径是否存在,不存在则创建
File dir = new File(realPath);
if (!dir.isDirectory())
dir.mkdir();
if (ServletFileUpload.isMultipartContent(request)) {
DiskFileItemFactory dff = new DiskFileItemFactory();
dff.setRepository(dir);
dff.setSizeThreshold(1024000);
ServletFileUpload sfu = new ServletFileUpload(dff);
FileItemIterator fii = null;
fii = sfu.getItemIterator(request);
String title = ""; //图片标题
String url = ""; //图片地址
String fileName = "";
String state = "SUCCESS";
String realFileName = "";
while (fii.hasNext()) {
FileItemStream fis = fii.next();
try {
if (!fis.isFormField() && fis.getName().length() > 0) {
fileName = fis.getName();
Pattern reg = Pattern
.compile("[.]jpg|png|jpeg|gif$");
Matcher matcher = reg.matcher(fileName);
if (!matcher.find()) {
state = "请上传:jpg/png/jpeg/gif等类型图片!";
break;
}
realFileName = new Date().getTime()
+ fileName.substring(fileName
.lastIndexOf("."), fileName
.length());
url = realPath + "/" + realFileName;
BufferedInputStream in = new BufferedInputStream(
fis.openStream());//获得文件输入流
FileOutputStream a = new FileOutputStream(new File(
url));
BufferedOutputStream output = new BufferedOutputStream(
a);
Streams.copy(in, output, true);//开始把文件写到你指定的上传文件夹
} else {
String fname = fis.getFieldName();
if (fname.indexOf("pictitle") != -1) {
BufferedInputStream in = new BufferedInputStream(
fis.openStream());
byte c[] = new byte[10];
int n = 0;
while ((n = in.read(c)) != -1) {
title = new String(c, 0, n);
break;
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
response.setStatus(200);
String retxt = "{imageName:'"+realFileName+"',src:'" + basePath + filePath + "/"
+ realFileName + "', state:'"+state+"'}";
response.getWriter().print(retxt);
}
} catch (Exception ee) {
ee.printStackTrace();
}
}
public void init() throws ServletException {
// Put your code here
}
}
导入js文件: