java图片怎么和文本同时提交到表单
创始人
2024-12-24 22:21:58
0次

首先来看如下效果图片:

表单代码:

宠物(或产品)类型:

宠物(或产品)名字:

一句话介绍:

题目:

价钱:

库存:

状态:

头像设置:
Image preview
详细描述(编辑完需要在文本框右上角点保存):

 

商品详细描述

 

编辑完需要在文本框右上角点保存



提交表单是采用二进制方式提交,所以一般用来上传图片操作,当在这个表单下同时上传文本,就会报错。但是业务需要上传商品是文本和图片同时上传的,所以这里要用到commons的四个包,使用Maven导入,如下:

 commons-io  commons-io  2.4  commons-fileupload  commons-fileupload  1.3.3  commons-collections  commons-collections  3.1  commons-beanutils  commons-beanutils  1.9.2

Java代码如下:

主要判断每一个参数的属性,图片的则进行图片处理,文本则进行文本处理。

//新增产品 @RequestMapping("/addPro") public void addPro(HttpServletRequest request, HttpServletResponse response) throws IOException {  //编码规范  response.setContentType("text/html");//  response.setCharacterEncoding("utf-8");  Product product = new Product();   //这种方法主要通过if (item.isFormField())这个条件判别文件还是非文件  DiskFileItemFactory factory = new DiskFileItemFactory();  ServletFileUpload upload = new ServletFileUpload(factory);  List items = null;  try {   items = upload.parseRequest(request);  } catch (FileUploadException e) {   e.printStackTrace();  } // 解析request请求  Iterator iter = items.iterator();// 遍历表单中提交过来的内容  while (iter.hasNext()) {   FileItem item = (FileItem) iter.next();   if (item.isFormField()) { // 如果是表单域 ,就是非文件上传元素    String value = item.getString("UTF-8"); // 获取value属性的值,这里需要指明UTF-8格式,否则出现中文乱码问题    if (item.getFieldName().equals("cid")) {// 对应form中属性的名字     int categoryId = Integer.parseInt(value);     product.setCategory_id(categoryId);    } else if (item.getFieldName().equals("cname")) {     product.setName(value);    }else if (item.getFieldName().equals("introduction")) {     product.setIntroduction(value);    }else if (item.getFieldName().equals("title")) {     product.setTitle(value);    }else if (item.getFieldName().equals("price")) {     BigDecimal price=new BigDecimal(value);     product.setPrice(price);    }else if (item.getFieldName().equals("stock")) {     product.setStock(Integer.parseInt(value));    }else if (item.getFieldName().equals("status")) {     product.setStatus(Integer.parseInt(value));    }else if (item.getFieldName().equals("details")) {     product.setDetail(value);    }   }else {    String filename = item.getName(); // 文件的名字     String imgname = filename.substring(0, filename.indexOf(".")); //减去“.”后面的字符     //tomcat启动位置//    String t1 = System.getProperty("user.dir").substring(0,//      System.getProperty("user.dir").length() - 4);     String path = request.getServletContext().getRealPath("img"); //target找到img位置    Long time = Calendar.getInstance().getTimeInMillis(); //时间戳,保证文件命名不重复    String imgurl = "./img/"+imgname+time+".jpg";    product.setImage(imgurl);    System.out.println(imgurl);    File saveFile = new File(path+"/" + imgname+time+".jpg"); // 定义一个file指向一个具体的文件    try {     item.write(saveFile);// 把上传的内容写到一个文件中     System.out.println("上传到"+path+"成功");    } catch (Exception e) {     /* e.printStackTrace(); */     System.out.println("文件"+path+"为空");    }   }  }   if(productDaoService.addProduct(product)){   PrintWriter out = response.getWriter();   out.print("");  }else {   PrintWriter out = response.getWriter();   out.print("");  } }

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...