本来想写个controller,结果拦截器把图片拦住了,那就直接servlet
public class UploadEamge extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
private static final String[] IMAGE_TYPE = new String[] {".bmp",".jpeg",".jpg",".gif",".png"};
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 校验图片格式
DiskFileItemFactory factory = new DiskFileItemFactory();
String uploadTempDir="E:/123";
factory.setRepository(new File(uploadTempDir));
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("utf-8");
List<FileItem> fileList;
try {
fileList = upload.parseRequest(request);
response.setCharacterEncoding("utf-8");
String uuidName=null;
Iterator<FileItem> it= fileList.iterator();
String filePath="E:/123";
File newFile = new File(filePath);
if (!newFile.exists()) {
newFile.mkdirs();// E:all_apachesapache-tomcat-6.0.32apache-tomcat-6.0.32webappsday09_uploadimg
}
while (it.hasNext()) {
FileItem item = it.next();
if (!item.isFormField()) {
String name = item.getName();
long size = item.getSize();
if (name == null || name.trim().equals("")) {
continue;
}
try {
if (size > 716800) {
response.getWriter()
.print("{"returnMessage":"图片大小不能大于700K.","returnCode":"1024","imgUrl":""}");
}
} catch (Exception e) {
e.getStackTrace();
}
boolean isLegal = false;
for (String type : IMAGE_TYPE) {
if (StringUtils.endsWithIgnoreCase(item.getName(), type)) {
isLegal = true;
System.out.println(isLegal);
break;
}
System.out.println(isLegal);
}
try {
uuidName=generateRandonFileName(item.getName());
item.write(new File(newFile, uuidName));
item.delete();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException();
}
}
String url = "http://image.brand.com"+ "/"+uuidName;
System.out.println(url);
response.getWriter().print(
"{"returnMessage":"","returnCode":"0000","imgUrl":""
+ url + ""}");
}
}catch (Exception e) {
e.getStackTrace();
}
}
public static String generateRandonFileName(String fileName) {
String ext = fileName.substring(fileName.lastIndexOf("."));
return UUID.randomUUID().toString() + ext;
}
}