您的位置:首页 > 编程语言 > Java开发

springMVC单个文件上传

2014-07-30 22:27 330 查看
<form id="uploadForm" action="upload.html" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>文件</td>
<td><input type="file" name="file"></td>
</tr>
<tr>
<td colspan="2" align="center">
<button type="button" onclick="doUpload()">上传</button>
<button type="button" onclick="hide('upload')">返回</button>
</td>
</tr>
</table>
</form>


function doUpload(){
if(uploadFormValidateor.form()){
var fileName = $("#uploadForm").find("input[type=file]")[0].value;
$.ajax({
url:"<%=request.getContextPath()%>/ajax/exists.html",
data:{
where:"ME_FILE where lower(FILE_NAME) = lower('" + fileName + "')"
},
success:function(num){
var cover;
if(num != "0") {
if(confirm("已经存在该文件,是否覆盖原文件?")){
cover = "true";
}else{
return false;
}
}
$("#uploadForm").ajaxSubmit({
data:{"cover":cover},
success:function(data){
if(data == "success") {
$("#searchForm").submit();
}else{
alert("上传失败");
}
}
});
}
});
}
}
@RequestMapping("upload")
@ResponseBody
public String upload(HttpServletRequest request){
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest.getFile("file");
String realFileName = file.getOriginalFilename();
String destDir = request.getServletContext().getRealPath("/") + Constant.FILE_PATH;
File uploadFile;
try {
File dir = new File(destDir);
if(!dir.exists()){
dir.mkdir();
}
uploadFile = new File(destDir + realFileName);
file.getFileItem().write(uploadFile);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "failure";
}
Map<String,Object> map = new HashMap<String,Object>();
String cover = request.getParameter("cover");
int i = 0;
if(cover != null && cover.equals("true")){	//存在则更新文件信息
map.put("fileName", realFileName);
map.put("fileSize", file.getSize());
map.put("uploadDate", DateUtils.getDate());
map.put("uploadTime", DateUtils.getTime());

i = MybatisUtils.update("file.mysql.updateFileByName", map);
if(i == 0){
return "failure";
}
}else{
map.put("fileId", UUID.randomUUID().toString());
map.put("fileName", realFileName);
map.put("fileType", realFileName.substring(realFileName.lastIndexOf(".") + 1));
map.put("fileSize", file.getSize());
map.put("uploadDate", DateUtils.getDate());
map.put("uploadTime", DateUtils.getTime());

i = MybatisUtils.insert("file.mysql.insertFile", map);
if(i == 0){
// 操作数据失败,把上传的文件删除
uploadFile.delete();
return "failure";
}
}
System.out.println(uploadFile.getAbsolutePath());
return "success";
}


根据文件名判断是否已存在文件,提示是否要覆盖,覆盖则更新文件信息;如果文件不存在则向数据插一条上传文件信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  springmvc