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>");
      }
    }
  }
相关文章
|
2月前
|
Java
Java开发实现图片URL地址检验,如何编码?
【10月更文挑战第14天】Java开发实现图片URL地址检验,如何编码?
94 4
|
2月前
|
Java
Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
【10月更文挑战第14天】Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
70 2
|
2月前
|
算法 Java Linux
java制作海报二:java使用Graphics2D 在图片上合成另一个照片,并将照片切割成头像,头像切割成圆形方法详解
这篇文章介绍了如何使用Java的Graphics2D类在图片上合成另一个照片,并将照片切割成圆形头像的方法。
55 1
java制作海报二:java使用Graphics2D 在图片上合成另一个照片,并将照片切割成头像,头像切割成圆形方法详解
|
2月前
|
Java 数据安全/隐私保护
Java ffmpeg 实现视频加文字/图片水印功能
【10月更文挑战第22天】在 Java 中使用 FFmpeg 实现视频加文字或图片水印功能,需先安装 FFmpeg 并添加依赖(如 JavaCV)。通过构建 FFmpeg 命令行参数,使用 `drawtext` 滤镜添加文字水印,或使用 `overlay` 滤镜添加图片水印。示例代码展示了如何使用 JavaCV 实现文字水印。
163 1
|
2月前
|
前端开发 小程序 Java
java基础:map遍历使用;java使用 Patten 和Matches 进行正则匹配;后端传到前端展示图片三种情况,并保存到手机
这篇文章介绍了Java中Map的遍历方法、使用Pattern和matches进行正则表达式匹配,以及后端向前端传输图片并保存到手机的三种情况。
27 1
|
2月前
|
算法 Java Linux
java制作海报四:java BufferedImage 转 InputStream 上传至OSS。png 图片合成到模板(另一个图片)上时,透明部分变成了黑色
这篇文章主要介绍了如何将Java中的BufferedImage对象转换为InputStream以上传至OSS,并解决了png图片合成时透明部分变黑的问题。
114 1
|
2月前
|
算法 搜索推荐 Java
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
这篇文章介绍了如何使用Java后端技术,结合Graphics2D和Echarts等工具,生成包含个性化信息和图表的海报,并提供了详细的代码实现和GitHub项目链接。
152 0
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
|
3月前
|
Java
Java-FileInputStream和FileOutputStream的使用,txt文件及图片文件的拷贝
这篇文章介绍了Java中FileInputStream和FileOutputStream的使用,包括如何读取和写入txt文件以及如何拷贝图片文件。
Java-FileInputStream和FileOutputStream的使用,txt文件及图片文件的拷贝
|
2月前
|
算法 小程序 Java
java制作海报三:获取微信二维码详情,并改变大小,合成到海报(另一张图片)上
这篇文章介绍了如何使用Java获取微信小程序的二维码,并将其调整大小后合成到海报(另一张图片)上。
54 0
|
2月前
|
算法 Java Linux
java制作海报一:java使用Graphics2D 在图片上写字,文字换行算法详解
这篇文章介绍了如何在Java中使用Graphics2D在图片上绘制文字,并实现自动换行的功能。
152 0