上传excel文件
$("#upload").ajaxSubmit({
type: "post",
url: basePath+'/util/uploadExcel.jsp',
success: function (text) {
var filePath = text;//获取上传文件路径
},
})
uploadExcel.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" session="false" %>
<%@ page import="java.io.*,java.util.*" %>
<%@ page import="javax.servlet.http.*" %>
<%@ page import="org.apache.commons.fileupload.*" %>
<%@ page import="org.apache.commons.fileupload.disk.*" %>
<%@ page import="org.apache.commons.fileupload.servlet.*" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.net.URLEncoder" %>
<%
// 文件存储目录
String filePath = request.getSession().getServletContext().getRealPath("\\") + "importfile\\";
filePath = filePath.replace("\\", File.separator);
File pathFile = new File(filePath);
if(!pathFile.exists()){
pathFile.mkdirs();
}
//String maxSize = UtilCommon.getDefaultEntityByKey(IMSConstant.DS_NAME, "MAX_FILE_SIZE");
int maxFileSize = 20 * 1024 * 1024; // 最大上传的文件大小(20M)
int maxMemSize = 1000 * 1024; // 内存中存储文件的最大值
String contentType = request.getContentType();
if ((contentType.indexOf("multipart/form-data") >= 0)){
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置内存中存储文件的最大值
factory.setSizeThreshold(maxMemSize);
// 本地存储的数据大于 maxMemSize
factory.setRepository(pathFile);
// 创建一个新的文件上传处理程序
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置最大上传的文件大小
upload.setSizeMax(maxFileSize);
try{
// 解析获取的文件
List<?> fileItems = upload.parseRequest(request);
// 处理上传的文件
Iterator<?> i = fileItems.iterator();
while (i.hasNext ()){
FileItem fi = (FileItem)i.next();
if (!fi.isFormField()){
// 获取上传文件的参数
String fieldName = fi.getFieldName();
String fileName = fi.getName().replaceAll(" ", "");
boolean isInMemory = fi.isInMemory();
long sizeInBytes = fi.getSize();
// 随机文件名
SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyyMMddhhmmss");
String date = sDateFormat.format(new Date());
String fileNameEnd = date + Math.random() * 100000;
fileNameEnd = fileNameEnd.substring(0, fileNameEnd.indexOf("."));
fileName = fileNameEnd + fileName.substring(fileName.lastIndexOf("."));
// 写入文件
File file = new File(filePath, fileName);
fi.write(file) ;
//System.out.println("文件上传成功: " + filePath + fileName);
// 返回文件地址和名称
String str = URLEncoder.encode(filePath + fileName, "utf-8");
//System.out.println("=========server path:====" + str);
String tempPath = filePath + fileName;
response.setCharacterEncoding("utf-8");
response.setHeader("Content-type", "text/html;charset=utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter pw = response.getWriter();
pw.print(tempPath);
pw.flush();
pw.close();
}
}
}catch(Exception ex){
System.out.println(ex.getMessage());
}
}
%>