文件上传

来源:互联网 发布:我的世界暮色森林js 编辑:程序博客网 时间:2024/06/05 16:01
<form id="submitForm" method="post" action="${base}/baseInfo/upload.htm"  target="hidden_frame" enctype="multipart/form-data"> 
 <span id="upload">
   <input type="file" id="fileUpload" name="file"/>
<img id="pic" upflag="0" src="${resRoot}/images/q.jpg"/>
 </span>

      </form>

必须要有enctype="multipart/form-data",另外,如果想要支持ie8上传的话,只能使用file类型,可以通过浮层,使用css修改对应样式


js:

$("#submitForm").on('change',function(){
    
$.ajaxFileUpload({
url : base+"/baseInfo/ajax/toPage.htm", 
data:{},
secureuri : false,
fileElementId : 'fileUpload',
dataType : 'json',
success : function(data) {
   if(!data.ajaxFlag){
window.location.href = base +"/register/index.htm";
return;
}
if (data.success == 0) {
var filePath = data.imgUrl;
if(filePath != ''){
var path = filePath.substring(filePath.lastIndexOf("/")+1,filePath.length);
$("#filePath").val(path);
}
$("#pic").attr("upflag","1");
$("#pic").attr("src",data.imgUrl);
} else if (data.success == 1) {
alert("","系统繁忙,请稍后重试","fail");
}else if (data.success == 2) {
alert("提示信息","请选择图片!","fail");
}else if (data.success == 3) {
alert("","请选择正确格式的图片!","fail");
}
}
});
});


对应上传的图片想要上传到本地目录,不能放在tomcat目录下,否则重启tomcat后,对应上传文件就没有了,对应本地配置,可以通过apache去配置



后台:

@RequestMapping("/ajax/toPage")
@ResponseBody
public ResponseEntity<Map<String, Object>> toPage(HttpServletRequest request) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("ajaxFlag", true);
try {
// 从session中获取用户登陆信息
UserBaseInfoBean logInfo = (UserBaseInfoBean) request.getSession()
.getAttribute("userBean");
if(logInfo == null){
map.put("success", 1);
map.put("ajaxFlag", request.getAttribute("ajaxFlag"));
return new ResponseEntity<Map<String, Object>>(map, HttpStatus.OK);
}
String userId = logInfo.getUserId();

// 保存上传的图片
MultipartHttpServletRequest multipartHttpservletRequest = (MultipartHttpServletRequest) request;
for (Iterator it = multipartHttpservletRequest.getFileNames(); it.hasNext();) {
String key = (String) it.next();  
MultipartFile multipartFile = multipartHttpservletRequest
.getFile(key);
if(multipartFile == null){
map.put("success", 3);
return new ResponseEntity<Map<String, Object>>(map, HttpStatus.OK);
}


SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String date = sdf.format(new Date());
//获取对应存储本地路径
String path = picUpload.getLocalPath();
path = path + "/" + date; 
//获取对应的文件名称,并创建
String fileName = multipartFile.getOriginalFilename();
File targetFile = new File(path, fileName);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
String filetype = fileName.substring(fileName.lastIndexOf(".") + 1,
fileName.length());
List<String> arrowExtension = Arrays.asList("gif","jpg","png");
if(!arrowExtension.contains(filetype.toLowerCase())){//对图片格式进行校验
map.put("success", 2);
return new ResponseEntity<Map<String, Object>>(map, HttpStatus.OK);
}
multipartFile.transferTo(targetFile);
String nowTime = String.valueOf(System.currentTimeMillis());
//编辑图片
ImageUtil util = new ImageUtil(path + "/" + fileName, path + "/",
nowTime, filetype, 90, 100);
String imgHeadUrlReserve = date + "/" + nowTime + "." + filetype;
util.createThumbnail();
targetFile.delete();

String url = picUpload.getWebArea() + imgHeadUrlReserve;
baseInfoService.saveUserName(userId, imgHeadUrlReserve, null,"imgHeadUrlReserve");
map.put("success", 0);
map.put("imgUrl", url);
}

} catch (Exception e) {
e.printStackTrace();
map.put("success", 1);


}
return new ResponseEntity<Map<String, Object>>(map, HttpStatus.OK);
}



0 0
原创粉丝点击