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>"); } } }
分类:
实用技巧
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架