/**
* 上传照片
* @return
*/
@RequestMapping(value="weixin/uploadCollectImg")
@ResponseBody
public Response uploadCollectImg(HttpServletRequest request)
{
try
{
//将当前上下文初始化给 CommonsMutipartResolver (多部分解析器)
CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver(request.getSession().getServletContext());
//检查form中是否有enctype="multipart/form-data"
if(multipartResolver.isMultipart(request))
{
ShiroHttpServletRequest shiroRequest = (ShiroHttpServletRequest) request;
//将request变成多部分request
MultipartHttpServletRequest multiRequest = multipartResolver.resolveMultipart((HttpServletRequest) shiroRequest.getRequest());
//获取multiRequest 中所有的文件名
Iterator iter=multiRequest.getFileNames();
if(!iter.hasNext())
{
return Response.error("-1", "文件为空");
}
MultipartFile pic=multiRequest.getFile(iter.next().toString());
//文件原始名称
String fileOrginName=pic.getOriginalFilename();
String contentType=pic.getContentType();
if(!checkFile(fileOrginName)||!checkFileType(contentType))
{
return Response.error("-2","文件格式不对,支持jpg,jgeg,png");
}
String year=String.valueOf(Calendar.getInstance().get(Calendar.YEAR));
String rel_path="upload/collectImg/"+year;
String pic_dir=request.getSession().getServletContext().getRealPath(rel_path);
File dir=new File(pic_dir);
if(!dir.exists())
{
dir.mkdirs();
}
String newFileName=CommonUtil.generateUUID().replace("-", "").toLowerCase();//uuid唯一文件名
String suffix=fileOrginName.substring(fileOrginName.lastIndexOf("."), fileOrginName.length());//后缀名
File newFile=new File(pic_dir+"/"+newFileName+suffix);
pic.transferTo(newFile);
Response response=new Response();
response.put("code", "0");
response.put("msg", "文件上传成功");
response.put("picPath", rel_path+"/"+newFileName+suffix);
return response;
}else
{
return Response.error("-3","form中没有enctype='multipart/form-data'");
}
} catch (Exception e)
{
e.printStackTrace();
return Response.error("500", "后台系统异常",e.getMessage());
}
}
/**
* 通过文件名判断是否为允许的上传文件类型,true表示允许
*/
private boolean checkFile(String fileName) {
//设置允许上传文件类型
String suffixList = "jpg,png,jpeg";
// 获取文件后缀
String suffix = fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length());
if (suffixList.contains(suffix.trim().toLowerCase())) {
return true;
}
return false;
}
/**
* 通过contenttype判断是否为图片
*/
private boolean checkFileType(String contentType) {
//设置允许上传文件类型
List<String> media=Arrays.asList(new String[]{"image/jpeg","image/png","iamge/jpg"});
if (media.contains(contentType.trim().toLowerCase())) {
return true;
}
return false;
}
* 上传照片
* @return
*/
@RequestMapping(value="weixin/uploadCollectImg")
@ResponseBody
public Response uploadCollectImg(HttpServletRequest request)
{
try
{
//将当前上下文初始化给 CommonsMutipartResolver (多部分解析器)
CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver(request.getSession().getServletContext());
//检查form中是否有enctype="multipart/form-data"
if(multipartResolver.isMultipart(request))
{
ShiroHttpServletRequest shiroRequest = (ShiroHttpServletRequest) request;
//将request变成多部分request
MultipartHttpServletRequest multiRequest = multipartResolver.resolveMultipart((HttpServletRequest) shiroRequest.getRequest());
//获取multiRequest 中所有的文件名
Iterator iter=multiRequest.getFileNames();
if(!iter.hasNext())
{
return Response.error("-1", "文件为空");
}
MultipartFile pic=multiRequest.getFile(iter.next().toString());
//文件原始名称
String fileOrginName=pic.getOriginalFilename();
String contentType=pic.getContentType();
if(!checkFile(fileOrginName)||!checkFileType(contentType))
{
return Response.error("-2","文件格式不对,支持jpg,jgeg,png");
}
String year=String.valueOf(Calendar.getInstance().get(Calendar.YEAR));
String rel_path="upload/collectImg/"+year;
String pic_dir=request.getSession().getServletContext().getRealPath(rel_path);
File dir=new File(pic_dir);
if(!dir.exists())
{
dir.mkdirs();
}
String newFileName=CommonUtil.generateUUID().replace("-", "").toLowerCase();//uuid唯一文件名
String suffix=fileOrginName.substring(fileOrginName.lastIndexOf("."), fileOrginName.length());//后缀名
File newFile=new File(pic_dir+"/"+newFileName+suffix);
pic.transferTo(newFile);
Response response=new Response();
response.put("code", "0");
response.put("msg", "文件上传成功");
response.put("picPath", rel_path+"/"+newFileName+suffix);
return response;
}else
{
return Response.error("-3","form中没有enctype='multipart/form-data'");
}
} catch (Exception e)
{
e.printStackTrace();
return Response.error("500", "后台系统异常",e.getMessage());
}
}
/**
* 通过文件名判断是否为允许的上传文件类型,true表示允许
*/
private boolean checkFile(String fileName) {
//设置允许上传文件类型
String suffixList = "jpg,png,jpeg";
// 获取文件后缀
String suffix = fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length());
if (suffixList.contains(suffix.trim().toLowerCase())) {
return true;
}
return false;
}
/**
* 通过contenttype判断是否为图片
*/
private boolean checkFileType(String contentType) {
//设置允许上传文件类型
List<String> media=Arrays.asList(new String[]{"image/jpeg","image/png","iamge/jpg"});
if (media.contains(contentType.trim().toLowerCase())) {
return true;
}
return false;
}