后台代码
主要通过MultipartRequest上传文件
@RequestMapping(params = "commitFile")
@ResponseBody
public JSONObject commitFile(HttpServletRequest request) throws IOException{
String message = null;
JSONObject j = new JSONObject ();
message = "文件添加失败";
j.put("success",false);
j.put("msg",message);
String serverurl = request.getSession().getServletContext().getRealPath(""); // 项目在容器中实际发布运行的根路径
String realPath=serverurl+"upload"; //实际保存路径,相对于根路径
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
MultipartFile file = entity.getValue(); // 获取上传文件对象
if (file!=null) { // 判断上传的文件是否为空
// 文件路径
String type=null; // 文件类型
String fileName=file.getOriginalFilename(); // 文件原名称
// 判断文件类型
type=fileName.indexOf(".")!=-1?fileName.substring(fileName.lastIndexOf(".")+1, fileName.length()):null;
if (type!=null) { // 判断文件类型是否为空
//指定文件类型,如图片
if ("GIF".equals(type.toUpperCase()) || "PNG".equals(type.toUpperCase())
|| "JPG".equals(type.toUpperCase())) {
String trueFileName=MyUtils.generateOrdersNum()+"."+type; // 自定义的文件名称
//path=realPath+"diploma/"+trueFileName; // 设置存放图片文件的路径 如有需要可以添加这个分隔符System.getProperty("file.separator")
File dir = new File(realPath,trueFileName);
if(!dir.exists()){
dir.mkdirs();
}
//业务逻辑处理,通常是取值存库
message = "文件添加成功";
j.put("success",true);
} else {
message = "文件类型不符合要求";
}
}else {
message="文件类型为空";
}
}else {
message="文件为空";
}
}
j.put("msg",message);
return j;
}
前端代码
简单的form表单提交文件
需要导入jquery包
<script type="text/javascript" src="jquery-1.9.1.js"></script>
<body>
<form action="commitFile.do" method="post" id="myForm">
<input type="file" name="file" onchange="document.getElementById('fileName').value=this.files[0].name">
<input type="text" id="fileName" style="width:120px;height=30px" placeholder="请上传文件" disabled="disabled">
<input type="submit" value="提交">
</form>
</body>
<script type="text/javascript">
var form=document.getElementById('myForm');
form.onsubmit=function(){
var wenjian=document.getElementById('fileName').value;
if(!fileName){
alert("请上传文件")
return false;
}else{
$(this).ajaxSubmit(function(data) {
alert(JSON.parse(data).msg);
});
return false;
}
}
</script>