头像上传

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();
}

}

}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值