package com.server.android.servlet;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.tomcat.util.http.fileupload.FileItem;
import org.apache.tomcat.util.http.fileupload.FileUploadException;
import org.apache.tomcat.util.http.fileupload.disk.DiskFileItemFactory;
import org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload;
import org.apache.tomcat.util.http.fileupload.servlet.ServletRequestContext;
import com.server.android.UserDao;
import com.server.android.UserDaoImpl;
/**
* @author 作者 YeYouWang:
* @date 创建时间:2017年11月16日 上午11:50:32
* @version 1.0
* @parameter
* @since
* @return
*/
@WebServlet(name="UploadChart",value= {"/servlet/UploadChartServlet","/jbx_server/servlet/UploadChartServlet"})
public class UploadChartServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
//判断请求是否是 multipart
boolean b = ServletFileUpload.isMultipartContent(request);
//修改上传头像的名称 year month date加hour minute second加随机数
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HHmmss");
String dateNowStr = sdf.format(d);
Random rand = new Random();
int randNum = rand.nextInt(89)+10;
String uploadFileName = dateNowStr+randNum;
System.out.println(uploadFileName);
//创建上传头像临时路径
File tempFile = new File("D:/temp/buffer");
if(!tempFile.exists()) {
tempFile.mkdirs();
}
if(b) {
//upload必须存在
String uploadFile = request.getSession().getServletContext().getRealPath("\\WEB-INF\\upload");
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(4*1024);//上传缓存大小4kb
factory.setRepository(tempFile);//上传的数据存储到 临时文件夹
//实例化
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(3000*1024);//上传需小于3000kb
try {
//解析接收到的头像
List<FileItem> items = (List<FileItem>)upload.parseRequest(new ServletRequestContext(request));
Iterator<FileItem> item = items.iterator();
while(item.hasNext()) {
FileItem fileItem = item.next();
String filenName = fileItem.getName();//上传头像名包括后缀名
String ext = filenName.substring(filenName.lastIndexOf(".")+1);//获取后缀名
//后缀名jpg gif bmp png
List<String> list = Arrays.asList("jpg","gif","bmp","png");
if(list.contains(ext)) {
if(filenName!=null && !filenName.equals("")) {
//保存
File savefile = new File(uploadFile,uploadFileName+"."+ext);
fileItem.write(savefile);
//服务器相对路径
request.getSession().setAttribute("part_url","upload/"+uploadFileName+"."+ext);
//获取用户Id
String id ="13058052051";
//long id = (long) request.getSession().getAttribute("18118777085");//获取用户的id
UserDao dao = new UserDaoImpl();
boolean flag = dao.update("upload/"+uploadFileName+"."+ext,id);
if(flag){
response.getWriter().print("<script>alert('头像上传成功!')</script>");
System.out.println("上传成功");
}else {
response.getWriter().print("<script>alert('头像上传失败!')</script>");
System.out.println("上传失败");
}
}
}
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.tomcat.util.http.fileupload.FileItem;
import org.apache.tomcat.util.http.fileupload.FileUploadException;
import org.apache.tomcat.util.http.fileupload.disk.DiskFileItemFactory;
import org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload;
import org.apache.tomcat.util.http.fileupload.servlet.ServletRequestContext;
import com.server.android.UserDao;
import com.server.android.UserDaoImpl;
/**
* @author 作者 YeYouWang:
* @date 创建时间:2017年11月16日 上午11:50:32
* @version 1.0
* @parameter
* @since
* @return
*/
@WebServlet(name="UploadChart",value= {"/servlet/UploadChartServlet","/jbx_server/servlet/UploadChartServlet"})
public class UploadChartServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
//判断请求是否是 multipart
boolean b = ServletFileUpload.isMultipartContent(request);
//修改上传头像的名称 year month date加hour minute second加随机数
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HHmmss");
String dateNowStr = sdf.format(d);
Random rand = new Random();
int randNum = rand.nextInt(89)+10;
String uploadFileName = dateNowStr+randNum;
System.out.println(uploadFileName);
//创建上传头像临时路径
File tempFile = new File("D:/temp/buffer");
if(!tempFile.exists()) {
tempFile.mkdirs();
}
if(b) {
//upload必须存在
String uploadFile = request.getSession().getServletContext().getRealPath("\\WEB-INF\\upload");
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(4*1024);//上传缓存大小4kb
factory.setRepository(tempFile);//上传的数据存储到 临时文件夹
//实例化
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(3000*1024);//上传需小于3000kb
try {
//解析接收到的头像
List<FileItem> items = (List<FileItem>)upload.parseRequest(new ServletRequestContext(request));
Iterator<FileItem> item = items.iterator();
while(item.hasNext()) {
FileItem fileItem = item.next();
String filenName = fileItem.getName();//上传头像名包括后缀名
String ext = filenName.substring(filenName.lastIndexOf(".")+1);//获取后缀名
//后缀名jpg gif bmp png
List<String> list = Arrays.asList("jpg","gif","bmp","png");
if(list.contains(ext)) {
if(filenName!=null && !filenName.equals("")) {
//保存
File savefile = new File(uploadFile,uploadFileName+"."+ext);
fileItem.write(savefile);
//服务器相对路径
request.getSession().setAttribute("part_url","upload/"+uploadFileName+"."+ext);
//获取用户Id
String id ="13058052051";
//long id = (long) request.getSession().getAttribute("18118777085");//获取用户的id
UserDao dao = new UserDaoImpl();
boolean flag = dao.update("upload/"+uploadFileName+"."+ext,id);
if(flag){
response.getWriter().print("<script>alert('头像上传成功!')</script>");
System.out.println("上传成功");
}else {
response.getWriter().print("<script>alert('头像上传失败!')</script>");
System.out.println("上传失败");
}
}
}
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}