【DRP】——图片上传(第一种)
来源:互联网 发布:马尔萨斯陷阱 知乎 编辑:程序博客网 时间:2024/05/22 13:36
前言
最近在学习DRP,其中有一个功能是实现对物料信息图片上传的功能
功能实现
1.引入jar包
2.Servlet
FileUploadServlet.java
package com.bjpowernode.drp.basedata.web;import java.io.File;import java.io.IOException;import java.io.PrintWriter;import java.util.Iterator;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.FileUploadException;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;public class FileUploadServlet extends HttpServlet {//private String uploadPath = "D:\\DRP\\apache-tomcat-7.0.75\\webapps\\drp4.0\\upload\\"; // 用于存放上传文件的目录private File uploadPath;//private File tempPath = new File("D:\\addnetFile\\tmp\\"); // 用于存放临时文件的目录private File tempPath;public void doPost(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException {//multipart/form-data//String itemNo = req.getParameter("itemNo");//System.out.println("itemNo======" + itemNo);DiskFileItemFactory factory = new DiskFileItemFactory();// maximum size that will be stored in memoryfactory.setSizeThreshold(4096);// the location for saving data that is larger than getSizeThreshold()factory.setRepository(tempPath);ServletFileUpload upload = new ServletFileUpload(factory);// maximum size before a FileUploadException will be thrownupload.setSizeMax(1000000 * 20);try {List fileItems = upload.parseRequest(req);String itemNo ="";for(Iterator iter = fileItems.iterator(); iter.hasNext();){FileItem item = (FileItem) iter.next();//是普通的表单输入域if(item.isFormField()){if("itemNo".equals(item.getFieldName())){itemNo = item.getString();}}// 是否為input="type"输入域if (!item.isFormField()) {String fileName = item.getName();long size = item.getSize();if ((fileName == null || fileName.equals("")) && size == 0){continue;}//截取字符串 C:\Users\sms\Desktop\1.txtfileName= fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length()); //item.write(new File(uploadPath + itemNo + ".jpg"));item.write(new File(uploadPath, itemNo + ".jpg"));} }res.sendRedirect(req.getContextPath() + "/servlet/item/SearchItemServlet");} catch (Exception e) {e.printStackTrace();}}public void init() throws ServletException { uploadPath= new File(getServletContext().getRealPath("upload")); System.out.println("uploadPath=====" + uploadPath); //如果目录不存在 if(!uploadPath.exists()){ //创建目录 uploadPath.mkdir(); } tempPath=new File(getServletContext().getRealPath("temp")); if(!tempPath.exists()){ tempPath.mkdir(); }}}ShowItemUploadServlet
package com.bjpowernode.drp.basedata.web;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.bjpowernode.drp.basedata.domain.Item;import com.bjpowernode.drp.basedata.manager.ItemManager;import com.bjpowernode.drp.basedata.manager.ItemManagerImpl;/** * @author sms * */public class ShowItemUploadServlet extends HttpServlet {private ItemManager itemManager;@Overridepublic void init() throws ServletException {itemManager = new ItemManagerImpl();}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request,response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String itemNo = request.getParameter("itemNo");Item item = itemManager.findItemById(itemNo);request.setAttribute("item", item);request.getRequestDispatcher("/basedata/item_upload.jsp").forward(request, response);}}
3.配置文件web.xml
<servlet><servlet-name>FileUploadServlet</servlet-name><servlet-class>com.bjpowernode.drp.basedata.web.FileUploadServlet</servlet-class><load-on-startup>10</load-on-startup></servlet><servlet-mapping><servlet-name>FileUploadServlet</servlet-name><url-pattern>/servlet/item/FileUploadServlet</url-pattern></servlet-mapping><servlet><servlet-name>ShowItemUploadServlet</servlet-name><servlet-class>com.bjpowernode.drp.basedata.web.ShowItemUploadServlet</servlet-class></servlet><servlet-mapping><servlet-name>ShowItemUploadServlet</servlet-name><url-pattern>/servlet/item/ShowItemUploadServlet</url-pattern></servlet-mapping>
4.item_upload.jsp
<tr><td height="74"><div align="right">图片: </div></td><td><img src="upload/<%=item.getItemNo()%>.jpg" width="85" height="49"></td></tr>
总结
这种方式是有不足之处的,下篇写另一种方法。
阅读全文
0 0
- 【DRP】——图片上传(第一种)
- 【DRP】图片上传(第二种)
- DRP——Servlet(一)
- drp——servlet
- 【DRP】——servlet
- drp—包含
- java生成验证码图片—servlet篇(第一种)
- Android 图片选择器(第一种)
- Java Drp项目实战——Drp知多少
- DRP视频——前言
- DRP——用户管理
- DRP——Dom4j使用
- 【DRP】——JSP+servlet
- 【DRP】——完结篇
- 【DRP】——需求分析
- 【DRP】——工厂模式
- 【DRP】——代码积累
- PHP学习笔记第【15】天(2014.11.20)——图片处理GD,文件上传
- Kubernetes Scheduler 调度- Node信息管理
- Android做一个启动界面
- linux下c++读取串口
- 列表
- (二)jQuery+ajax与servlet的交互
- 【DRP】——图片上传(第一种)
- 474. Ones and Zeroes
- 题目管理 1182: 硬币兑换
- 超大规模集成电路 VLSI
- 23种Java设计模式_单例模式_1
- Eclipse插件开发(四)代码设计
- 自适应网页(响应式布局)+弹性布局
- 第一篇博客 分析bootloader详解;
- [母函数]HDU 1521——排列组合