手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

JAVA eclipse如何上传图片到数据库

时间:2024-10-12 03:09:41

1、笔者是在Eclipse 8.0的编程环境中锿洞斜嗤演示的,使用的是MVC三层架构。需要用到两个图片处理的插件,这两个插件直接在网上搜索下载(根据自己的eclipse版本进行选择),解压后放到WebContent——WEB-INF——lib目录下

JAVA eclipse如何上传图片到数据库
JAVA eclipse如何上传图片到数据库

2、创建一个用于处理图片的类PhotoDao.java(包含以下函数),可以直接复制,仅需修鸷拳林根改saveFile函数的绝对路径(项目中存放图片的img文件所在的路径):package P茑霁酌绡hoto;public class PhotoDao {/** *2018年10月24日下午10:41:33 *这个函数的功能是获取前端的数据集合,将文件打包成File以便后续操作 */ public static List<FileItem> getRequsetFileItems(HttpServletRequest request,ServletContext servletContext){ boolean isMultipart=ServletFileUpload.isMultipartContent(request); if(isMultipart) { DiskFileItemFactory factory = new DiskFileItemFactory(); String str="javax.servelet.context.tempdir"; File repository=(File) servletContext.getAttribute(str); factory.setRepository(repository); ServletFileUpload upload=new ServletFileUpload(factory); try { return upload.parseRequest(request); }catch (FileUploadException e) { // TODO: handle exception return null; } }else { return null; } } /** *2018年10月24日下午10:37:59 *这个函数的功能是将文件传到预先设置的绝对路径中,也就是项目里的imgs文件夹 */ public static boolean saveFile(FileItem item,String fileName) { File savePath=new File("D:\\eclipse\\workspace\\项目名称\\WebContent\\img"); if(!savePath.exists()) { savePath.mkdirs(); } File uploadFile=new File(savePath+File.separator+fileName); try{ item.write(uploadFile); //System.out.println("保存文件成功"); return true; }catch(Exception e){ // System.out.println("保存文件失败"); } return false; } /** *2018年10月24日下午8:02:04 *这个函数的功能是获取当前时间点与1970年的间隔秒数 */ public static int getSecondTimestamp(Date date){ if (null == date) { return 0; } String timestamp = String.valueOf(date.getTime()); System.out.println(timestamp); int length = timestamp.length(); if (length > 3) { return Integer.valueOf(timestamp.substring(0,length-3)); } else { return 0; } } /** * *2018年10月24日下午8:42:05 *这个函数的功能是得到新的照片名称 */ public static String getPhotoNewName() { Date date=new Date(); int second=getSecondTimestamp(date); String fileName=String.valueOf(second)+".jpg"; return fileName; } /** *2018年10月24日下午8:48:58 *这个函数的功能是判断文件后缀是否是jpg格式 */ public static boolean isGif(FileItem item) { String fileFullName=item.getName(); File fileInfo=new File(fileFullName); String suffix = fileInfo.getName().substring(fileInfo.getName().lastIndexOf(".") + 1); if(suffix.equals("jpg")) { return true; } return false; }}

JAVA eclipse如何上传图片到数据库

3、创建zhuce.jsp:

JAVA eclipse如何上传图片到数据库
JAVA eclipse如何上传图片到数据库
JAVA eclipse如何上传图片到数据库
JAVA eclipse如何上传图片到数据库
JAVA eclipse如何上传图片到数据库
JAVA eclipse如何上传图片到数据库

4、创建上传图片的UserServlet:protected void doGet(HttpServletRequest request, HttpServletRespo荏鱿胫协nse response) throws ServletException, IOException {// TODO Auto-generated method stub//获取本次操作的类型String type = request.getParameter("type");//注册try {switch (type) {case "zhuce":user_zhuce(request, response);break;}}catch (SQLException e) {e.printStackTrace();}}//注册protected void user_zhuce(HttpServletRequest request, HttpServletResponse response) throws IOException, SQLException, ServletException {String uname = null; //用户名String unickname = null; //昵称String upass1 = null; //密码String upass2 = null; //二次输入的密码String uemail = null; //邮箱List<String> list=new ArrayList<String>();String filename=PhotoDao.getPhotoNewName(); //ServletContext servletContext=null;servletContext=request.getSession().getServletContext(); //获取文件的真实路径:在数据库中存储格式:/webTest/img/***.jpg//第一步:获取页面上上传的图片资源List<org.apache.commons.fileupload.FileItem> items=PhotoDao.getRequsetFileItems(request,servletContext); //boolean isLoadToSQL=false;for(org.apache.commons.fileupload.FileItem item:items) {if(!item.isFormField()){ //是文件类型的//判断后缀名是否是jpgif(PhotoDao.isGif(item)) { //isLoadToSQL=PhotoDao.saveFile(item,filename); //}else {System.out.println("后缀格式有误,保存文件失败");}}else { //不是文件,是表单类型switch(item.getFieldName()) { //获取表单标签“name”的属性值case "uname": uname = item.getString("UTF-8");break;case "unickname": unickname = item.getString("UTF-8");break;case "upass1": upass1 = item.getString("UTF-8");break;case "upass2": upass2 = item.getString("UTF-8");break;case "uemail": uemail = item.getString("UTF-8");break;}}}String finalPhotoName= "./img/"+filename;User user =new User();boolean flag = user.adduser(uname, unickname, upass1, upass2, uemail, finalPhotoName);if(flag==false) {JOptionPane.showMessageDialog(null, "用户注册失败!", "警告信息", JOptionPane.WARNING_MESSAGE);request.getRequestDispatcher("./zhuce.jsp").forward(request, response);}else request.getRequestDispatcher("./login.jsp").forward(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

5、效果图如下:

JAVA eclipse如何上传图片到数据库
JAVA eclipse如何上传图片到数据库
© 手抄报圈