java通过commons-fileupload实现多张图片的上传(servlet)

简介: java通过commons-fileupload实现多张图片的上传(servlet)
//添加食品信息
      private void addProduct(HttpServletRequest request, HttpServletResponse response) throws IOException{
    PrintWriter out = response.getWriter();
    /*Date date=new Date();
    SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    String date1=format.format(date);
    String productName=request.getParameter("produceName");
    int typeid=Integer.parseInt(request.getParameter("typename"));
    String details=request.getParameter("details");
    Float price =Float.parseFloat(request.getParameter("price"));
    int stock=Integer.parseInt(request.getParameter("stock"));
    String fileName=request.getParameter("fileName");
    fileName="images_ganguo/"+fileName;
    ProductInfo product=new ProductInfo();
    product.setP_typeId(typeid);
    product.setProductName(productName);
    product.setPrice(price);
    product.setDetails(details);
    product.setStock(stock);
    product.setDate(date1);
    product.setFileName(fileName);
    int rel=proService.addProductInfo(product);
    if(rel>0){
      //添加商品成功之后转发到查询所有的商品界面
      out.print("<script>alert('恭喜您,添加商品成功!');location.href='ProductInfoServlet?tag=show';</script>");
    }else{
      out.print("<script>alert('很抱歉,添加商品失败!');location.href='ProductInfoServlet?tag=show';</script>");
    }*/
    
    String typename="";//类型名称
    String brand="";//品牌
    String produceName="";//商品名称
        String details="";//商品详情
        String price="";//价格
        int stock=0;//库存
    request.setCharacterEncoding("utf-8");
    String uploadFileName="";//上传的文件名(大图)
    String uploadFileName1="";//上传的文件名(小图1)
    String uploadFileName2="";//上传的文件名(小图2)
    String uploadFileName3="";//上传的文件名(小图3)
    String uploadFileName4="";//上传的文件名(小图4)
    String fileName="";//表单字段元素的name属性值
    String filedName="";
    String picPath="";
    //请求信息中的内容是否是multipart类型
    boolean isMultipart =ServletFileUpload.isMultipartContent(request);
    //上传文件的存储路径(服务器文件系统上的绝对文件路径)
    String uploadFilePath=request.getSession().getServletContext().getRealPath("upload/");
    if(isMultipart){
      FileItemFactory factory=new DiskFileItemFactory();
      ServletFileUpload  upload=new ServletFileUpload(factory);
      try
      {
        //解析from表单中所有文件
        List<FileItem> items=upload.parseRequest(request);
        Iterator<FileItem> iter=items.iterator();
        while(iter.hasNext()){
          FileItem item=(FileItem)iter.next();
          if(item.isFormField()){//判断,是普通表单
            fileName=item.getFieldName();//表单字段的name属性
            if(fileName.equals("typename")){
              typename=item.getString("utf-8");
            }else if(fileName.equals("brand")){
              brand=item.getString("utf-8");
            }else if(fileName.equals("produceName")){
              produceName=item.getString("utf-8");
            }else if(fileName.equals("details")){
               details=item.getString("utf-8");
            }else if(fileName.equals("price")){
              price=item.getString("utf-8");
            }else if(fileName.equals("stock")){
              stock=Integer.parseInt(item.getString("utf-8"));
            }
          }else{
            //文件表单字段
            //表单字段的name属性
            fileName=item.getFieldName();
            if(fileName.equals("bigfile")){
             filedName=item.getName();
            if(fileName!=null&&!filedName.equals("")){
                File fullFile=new File(item.getName());
                File saveFile=new File(uploadFilePath,fullFile.getName());
                item.write(saveFile);
                uploadFileName=fullFile.getName();
                //ServletContext application=this.getServletContext();
                picPath=saveFile.toString();
            }
            }else if(fileName.equals("smallfile1")){
              filedName=item.getName();
              if(fileName!=null&&!filedName.equals("")){
                  File fullFile=new File(item.getName());
                  File saveFile=new File(uploadFilePath,fullFile.getName());
                  item.write(saveFile);
                  uploadFileName1=fullFile.getName();
                  //ServletContext application=this.getServletContext();
                  picPath=saveFile.toString();
              }
            }else if(fileName.equals("smallfile2")){
              filedName=item.getName();
              if(fileName!=null&&!filedName.equals("")){
                  File fullFile=new File(item.getName());
                  File saveFile=new File(uploadFilePath,fullFile.getName());
                  item.write(saveFile);
                  uploadFileName2=fullFile.getName();
                  //ServletContext application=this.getServletContext();
                  picPath=saveFile.toString();
              }
            }else if(fileName.equals("smallfile3")){
              filedName=item.getName();
              if(fileName!=null&&!filedName.equals("")){
                  File fullFile=new File(item.getName());
                  File saveFile=new File(uploadFilePath,fullFile.getName());
                  item.write(saveFile);
                  uploadFileName3=fullFile.getName();
                  //ServletContext application=this.getServletContext();
                  picPath=saveFile.toString();
              }
            }
          }
        }
      }catch(Exception ex){
        ex.printStackTrace();
      }
      Date date=new Date();
      SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
      String date1=format.format(date);
      ProductInfo product=new ProductInfo();
      int typeid=Integer.parseInt(typename);
      product.setP_typeId(typeid);
      product.setProductName(produceName);
      float price1=Integer.parseInt(price);
      product.setPrice(price1);
      product.setDetails(details);
      product.setStock(stock);
      product.setDate(date1);
      product.setFileName("upload/"+uploadFileName);
      product.setFileName_1("upload/"+uploadFileName1);
      product.setFileName_2("upload/"+uploadFileName2);
      product.setFileName_3("upload/"+uploadFileName3);
      int rel=proService.addProductInfo(product);
      if(rel>0){
        //添加商品成功之后转发到查询所有的商品界面
        out.print("<script>alert('恭喜您,添加商品成功!');location.href='ProductInfoServlet?tag=show';</script>");
      }else{
        out.print("<script>alert('很抱歉,添加商品失败!');location.href='ProductInfoServlet?tag=show';</script>");
      }
    }
    
    
  }


相关文章
|
9天前
|
Java
Java-FileInputStream和FileOutputStream的使用,txt文件及图片文件的拷贝
这篇文章介绍了Java中FileInputStream和FileOutputStream的使用,包括如何读取和写入txt文件以及如何拷贝图片文件。
Java-FileInputStream和FileOutputStream的使用,txt文件及图片文件的拷贝
|
12天前
|
存储 缓存 监控
Java——图片文件位于 bin 目录下,下载新图片会导致应用程序重启
【9月更文挑战第22天】在Java应用中,若图片位于bin目录下且下载新图片导致应用重启,可能是因为部署方式不当或资源监控机制过于敏感。解决方法包括:更改图片存储位置至独立目录;配置应用服务器减少资源监控敏感度;使用独立资源服务器托管静态资源;优化代码减少资源重复加载。具体方案需根据应用实际情况和技术栈调整。
|
2月前
|
Java
Java系列之 重命名文件/图片,renameTo() 方法的使用
这篇文章介绍了Java中File类的renameTo()方法,包括其使用方式、参数、返回值以及一些使用时的注意事项,并通过示例代码演示了如何使用该方法来重命名文件。
Java系列之 重命名文件/图片,renameTo() 方法的使用
|
1月前
|
数据采集 存储 前端开发
Java爬虫开发:Jsoup库在图片URL提取中的实战应用
Java爬虫开发:Jsoup库在图片URL提取中的实战应用
|
2月前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
23 3
|
2月前
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
26 1
|
2月前
|
存储 安全 Java
"Java编码魔法:揭秘图片与文件的Base64神秘转换术,让数据在指尖跳跃!"
【8月更文挑战第16天】Base64编码在Java开发中常用于将二进制数据如图片转换为ASCII字符串以便传输。编码使用64个字符及等号填充,每3字节数据编码为4个字符。Java利用`java.util.Base64`类实现此功能:读取图片或文件为字节数组后进行编码。解码时将Base64字符串还原为字节数组并写入文件。需注意编码效率降低、不提供安全性及特殊字符兼容性等问题。掌握这些技巧有助于解决Web开发中的数据传输需求。
62 4
|
2月前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
18 0
|
2月前
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
18 0
|
2月前
|
Java
Java 图片、文件 Base64 互转
Java 图片、文件 Base64 互转
34 0
下一篇
无影云桌面