这里介绍一下jsp的文件上传,前台使用jquery插件ajaxfileupload.js,后台使用MultipartFile
这个也没有什么好介绍的,看一下代码:
html代码:
<div id="upload" class="upload_div" >
<input type="file" id="file" name="file" />
<input type="button" id="upload" value="上传文件" onclick="fileUpload()" >
<input type="button" id="cancelBtn" value="取消" onclick="uploadCancel()" />
</div>
js代码:
function fileUpload() {
var fileValue = $("#file").val();
if (fileValue == null || fileValue == "" || fileValue == 'undefine') {
alert("请选择文件");
return;
}
$.ajaxFileUpload({
url : '/officeofriver/v1/supervisionPerson/upload?uuid=' + userUuid,
secureuri : false,
fileElementId : 'file',
dataType : 'text',
success : function(data) {
$("#hiddenDivId").css("display", "none");
$("#upload").css("display", "none");
$("#file").val("");
alert(data);
},
error : function() {
}
});
}
java代码:
@RequestMapping("/upload")
@ResponseBody
public Map<String, Object> fileUpload(@RequestParam(value = "file", required = false) MultipartFile file,
HttpServletRequest request, HttpServletResponse response) throws Exception {
String path = request.getSession().getServletContext().getRealPath("upload");
String fileName = file.getOriginalFilename();
File targetFile = new File(path, fileName);
String uuid = request.getParameter("uuid");
// 设置文件保存的路径 提供给后面的解析使用
request.getSession().setAttribute("fileNameSpare", fileName);
request.getSession().setAttribute("filePathSpare", path);
try {
file.transferTo(targetFile);
} catch (Exception e) {
logger.error(e.getMessage());
}
Map<String, Object> resultMap = supervisePersonService.parseExcel(path + File.separator + fileName, uuid);
@SuppressWarnings("unchecked")
Map<String, Object> errorRows = (Map<String, Object>) resultMap.get("errorRows");
return errorRows;
}
一个文件上传就搞定了。