下载方式一:Jquery+SpringMVC
var form = $("<form>");
form.attr("style", "display:none");
form.attr("target", "");
form.attr("method", "post");
form.attr("action", "/projrctname/action.do");
$("body").append(form);
form.submit();
public static void DownUtil(HttpServletRequest request, HttpServletResponse response,String ctxPath,String fileCnName) throws Exception{
response.setContentType("application/x-msdownload");
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
String downLoadPath = ctxPath + fileCnName;
long fileLength = new File(downLoadPath).length();
String fileName = FileUtils.encodeFileName(request,fileCnName);
response.setHeader("Content-Disposition", "attachment;filename="
+ fileName);
response.setHeader("Content-Length", String.valueOf(fileLength));
bis = new BufferedInputStream(new FileInputStream(downLoadPath));
bos = new BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[2048];
int bytesRead;
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
bis.close();
bos.close();
}
public static String encodeFileName(HttpServletRequest request,
String fileName) throws UnsupportedEncodingException {
String agent = request.getHeader("USER-AGENT");
if (null != agent && -1 != agent.indexOf("MSIE")) {
return URLEncoder.encode(fileName, "UTF8");
} else if (null != agent && -1 != agent.indexOf("Mozilla")) {
return "=?UTF-8?B?"
+ (new String(Base64.encodeBase64(fileName
.getBytes("UTF-8")))) + "?=";
} else {
return fileName;
}
}
上传
方式一:
<form id='fileSpan' style="display:inline" action="" method="post" enctype="multipart/form-data">
<input type='file' id='j' name="fileSpanFile">
<input type="submit" name="submitBB" class="btn" οnclick="sunbmitFileUp();" value="上传" />
</form>
public ModelAndView upload(HttpServletRequest request, HttpServletResponse response) {
DiskFileItemFactory factory=new DiskFileItemFactory();
FileUtils fileUtils=null;
// 设置内存缓冲区,超过后写入临时文件
factory.setSizeThreshold(10240000);
// 设置临时文件存储位置
String base=FileUtils.getExcelFileName(request);
File file=new File(base);
if(!file.exists())
file.mkdirs();
factory.setRepository(file);
ServletFileUpload upload=new ServletFileUpload(factory);
// 设置单个文件的最大上传值
upload.setFileSizeMax(10002400000l);
// 设置整个request的最大值
upload.setSizeMax(10002400000l);
upload.setHeaderEncoding("UTF-8");
try {
MultipartHttpServletRequest multipartRequest=(MultipartHttpServletRequest)request;
CommonsMultipartFile file1=(CommonsMultipartFile)multipartRequest.getFile("fileSpanFile");
InputStream stream=file1.getInputStream();
String fileName=file1.getOriginalFilename();
fileName=base + File.separator + fileName;
OutputStream bos=new FileOutputStream(fileName);
int bytesRead=0;
byte[] buffer=new byte[8192];
while((bytesRead=stream.read(buffer, 0, 8192)) != -1) {
bos.write(buffer, 0, bytesRead);
}
bos.close();
// 关闭流
stream.close();
fileUtils=new FileUtils();
} catch(Exception e) {
e.printStackTrace();
}
Map<String, Object> model=new HashMap<String, Object>();
model.put("msg", "success");
return new ModelAndView("JSONView", model);