文件上传功能
在spring-common/ servlet / config / 配置bean
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<property name="maxUploadSize" value="5242880"></property>
</bean>
spring-boot controller
public static String ATTACHMENT_FOLDER = "root/upload/";
@RequestMapping(value = "save", method = RequestMethod.POST, produces = "application/json; charset=UTF-8")
public String buildingSave(@RequestParam(required = false, value = "file") MultipartFile file) {
Map<String, String> resultMap = new HashMap<String, String>();
try {
this.checkBuildNum(building);
String fileName = this.uploadFile(file, fileName);
} catch (Exception e) {
resultMap.put("message", e.getMessage());
resultMap.put("result", "failure");
}
return JsonKit.toJson(resultMap);
}
/**
* 上传文件到服务器,如果文件已经存在则删除已有的文件。
* @param file
* @param newName 给文件重命名
* @return fileName 存储到服务器后的文件名
* @throws IOException
* @author zgli
*/
private String uploadFile(MultipartFile file, String newName) throws IOException{
String fileName = null;
if (null == file)
return fileName;
if (null == newName || "" == newName) {
fileName = file.getOriginalFilename();
}else {
String orignalFilename = file.getOriginalFilename();
String extentionFile = orignalFilename.substring(orignalFilename.lastIndexOf(".") + 1);
fileName = name + "." + extentionFile;
}
File fileDir = new File(ROOT);
if(!fileDir.exists()) {
fileDir.setWritable(true);
fileDir.mkdirs();
}
Files.copy(file.getInputStream(), Paths.get(ROOT, fileName), StandardCopyOption.REPLACE_EXISTING);
return fileName;
}
jsp
<form id="data_form" class="form-horizontal form-label-left" novalidate="" enctype="multipart/form-data">
<input type="file" id="file" />
<div >
<button id="btnSaveBuilding" type="button" >保存</button>
<button id="btnBack" type="button"> 取消</button>
</div>
</div>
</form>
<script>
$("#btnSaveBuilding").click(function(){
var ajaxUrl = "/building/save";
var formData = new FormData();
formData.append("file", $("#file")[0].files[0]);
$.ajax({
type: "POST",
url: ajaxUrl,
data:formData,
cache: false,
processData: false,
contentType: false,
success: function(result){
if(result.result=="success"){
alert(("操作成功");
}else{
alert("操作失败,错误信息:<br>"+result.message);
}
}
});
});
$("#btnBack").click(function(){
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
});
</script>