fileUpload文件上传

public class CommercialAddServlet extends HttpServlet {
private Log logger = LogFactory.getLog(CommercialAddServlet.class.getName());
private static final long serialVersionUID = 1L;
private long MAX_SIZE = 3 * 1024 * 1024;
/*// 允许上传的文件类型 
private String[] allowExpand = new String[] {".jpg",".jpeg",".gif",".png","rar",".txt",".doc",".docx",".mp3",".wma",".m4a"};*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
HttpSession session=request.getSession();
PrintWriter out=response.getWriter();
LoginUser user=(LoginUser) session.getAttribute("user");
CommercialDao commercialDao=new CommercialDao();
Commercial comm=new Commercial();

boolean flag = false;
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if(isMultipart){
try{
// 为解析类提供配置信息
DiskFileItemFactory factory = new DiskFileItemFactory();
// 创建解析类的实例
ServletFileUpload upload = new ServletFileUpload(factory);
// 开始解析
upload.setFileSizeMax(MAX_SIZE);//每个文件最大为多少
//upload.setSizeMax(16 * 1024 * 1024);//总计大小
upload.setHeaderEncoding("UTF-8");//防止乱码
        //解析请求
List   fileItems = upload.parseRequest(new ServletRequestContext(request));
Iterator iter=fileItems.iterator();

while(iter.hasNext()){
FileItem item=(FileItem) iter.next();
if(!item.isFormField()){
//获取项目发布路径
String mi=request.getSession().getServletContext().getRealPath("");
System.out.println("mi=="+mi);
String image="image/"+user.getId();
//将项目发布路径的项目名替换成image(用来存放图片)
File folder=new File(mi.substring(0,mi.length()-12)+image);
//File folder=new File(mi+image);
System.out.println("替换后="+folder);
//判断是否已经存在,如果不存在则创建
if (!folder.exists()) {
folder.mkdirs();
}

String fileName=item.getName();//文件名
File file = new File(fileName);
// 将图片名字改成以时间命名的格式
String imageFileName = System.currentTimeMillis()
+ getExtention(file.toString());
// 放进数据库的地址
String imagePath = folder + "/" + imageFileName;
// 取到服务器上传文件存放的路径

item.write(new File(imagePath));

if("sfzaimg".equals(item.getFieldName())){
comm.setSfzaimg(image+"/"+imageFileName);
}
if("sfzbimg".equals(item.getFieldName())){
comm.setSfzbimg(image+"/"+imageFileName);
}
if("yyzzimg".equals(item.getFieldName())){
comm.setYyzzimg(image+"/"+imageFileName);
}



}else{//非文件参数
if("recommender".equals(item.getFieldName())){
//推荐人
String recommender=item.getString("UTF-8").trim();
comm.setRecommender(recommender);
}else if("comname".equals(item.getFieldName())){
//商户名称
String comname=item.getString("UTF-8").trim();
comm.setComname(comname);
}else if("address".equals(item.getFieldName())){
//商户 address
String address=item.getString("UTF-8").trim();
comm.setAddress(address);
}else if("contactname".equals(item.getFieldName())){
//商户 联系人名称
String contactname=item.getString("UTF-8").trim();
comm.setContactname(contactname);
}else if("contactno".equals(item.getFieldName())){
//商户 联系人号码
String contactno=item.getString("UTF-8").trim();
comm.setContactno(contactno);
}else if("abstracts".equals(item.getFieldName())){
//商户 简介
String abstracts=item.getString("UTF-8").trim();
comm.setAbstracts(abstracts);
}

}
}
//保存
commercialDao.save(comm);
response.sendRedirect("****");
}catch(FileUploadException  e){

                                      //文件大小超出限制
logger.error("每张图片不能超过 3M");

out.print("<script>alert('每张图片不能超过 1M');window.location.href='*.jsp'; </script>");
out.flush();
out.close();
return;

}catch (Exception e) {
out.print("<script>alert('****');window.location.href='*.jsp'; </script>");
out.flush();
out.close();
return;


}

}


/*if(flag){//成功跳转
response.sendRedirect("***");
}else{
//进入失败页面,提示信息后自动刷新
//response.sendRedirect("****");
}*/
}
/**
* 转换字符串

* @param fileName
* @return
*/
private static String getExtention(String fileName) {
int pos = fileName.lastIndexOf(".");
return fileName.substring(pos);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值