這篇文章主要介紹“java圖片怎么和文本同時提交到表單”,在日常操作中,相信很多人在java圖片怎么和文本同時提交到表單問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java圖片怎么和文本同時提交到表單”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、巴彥ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學管理、有技術(shù)的巴彥網(wǎng)站制作公司
首先來看如下效果圖片:
表單代碼:
提交表單是采用二進制方式提交,所以一般用來上傳圖片操作,當在這個表單下同時上傳文本,就會報錯。但是業(yè)務(wù)需要上傳商品是文本和圖片同時上傳的,所以這里要用到commons的四個包,使用Maven導入,如下:
Java代碼如下:
主要判斷每一個參數(shù)的屬性,圖片的則進行圖片處理,文本則進行文本處理。
//新增產(chǎn)品 @RequestMapping("/addPro") public void addPro(HttpServletRequest request, HttpServletResponse response) throws IOException { //編碼規(guī)范 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();// 遍歷表單中提交過來的內(nèi)容 while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) { // 如果是表單域 ,就是非文件上傳元素 String value = item.getString("UTF-8"); // 獲取value屬性的值,這里需要指明UTF-8格式,否則出現(xiàn)中文亂碼問題 if (item.getFieldName().equals("cid")) {// 對應(yīng)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);// 把上傳的內(nèi)容寫到一個文件中 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(""); } }
到此,關(guān)于“java圖片怎么和文本同時提交到表單”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
分享題目:java圖片怎么和文本同時提交到表單
轉(zhuǎn)載注明:http://weahome.cn/article/gddpch.html