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

 时间:2024-10-16 20:26:10

上传文件类型图片到网站上当头像是一个很常见的功能,具体如何实现呢?笔者先前查阅资料对比了一下获取数据流和文件名两种方式,本篇经验讲解的是通过网页表单获取上传图片的名称,然后将其存入到数据库的方式。

工具/原料

电脑

eclipse

图片处理的两个插件

方法/步骤

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

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

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

2、创建一个用于处理图片的类PhotoDao.java(包含以下函数),可以直接复制,仅需修鸷拳林根改saveFile函数的绝对路径(项目中存放图片的img文件所在的路径):packageP茑霁酌绡hoto;publicclassPhotoDao{/***2018年10月24日下午10:41:33*这个函数的功能是获取前端的数据集合,将文件打包成File以便后续操作*/publicstaticList<FileItem>getRequsetFileItems(HttpServletRequestrequest,ServletContextservletContext){booleanisMultipart=ServletFileUpload.isMultipartContent(request);if(isMultipart){DiskFileItemFactoryfactory=newDiskFileItemFactory();Stringstr="javax.servelet.context.tempdir";Filerepository=(File)servletContext.getAttribute(str);factory.setRepository(repository);ServletFileUploadupload=newServletFileUpload(factory);try{returnupload.parseRequest(request);}catch(FileUploadExceptione){//TODO:handleexceptionreturnnull;}}else{returnnull;}}/***2018年10月24日下午10:37:59*这个函数的功能是将文件传到预先设置的绝对路径中,也就是项目里的imgs文件夹*/publicstaticbooleansaveFile(FileItemitem,StringfileName){FilesavePath=newFile("D:\\eclipse\\workspace\\项目名称\\WebContent\\img");if(!savePath.exists()){savePath.mkdirs();}FileuploadFile=newFile(savePath+File.separator+fileName);try{item.write(uploadFile);//System.out.println("保存文件成功");returntrue;}catch(Exceptione){//System.out.println("保存文件失败");}returnfalse;}/***2018年10月24日下午8:02:04*这个函数的功能是获取当前时间点与1970年的间隔秒数*/publicstaticintgetSecondTimestamp(Datedate){if(null==date){return0;}Stringtimestamp=String.valueOf(date.getTime());System.out.println(timestamp);intlength=timestamp.length();if(length>3){returnInteger.valueOf(timestamp.substring(0,length-3));}else{return0;}}/****2018年10月24日下午8:42:05*这个函数的功能是得到新的照片名称*/publicstaticStringgetPhotoNewName(){Datedate=newDate();intsecond=getSecondTimestamp(date);StringfileName=String.valueOf(second)+".jpg";returnfileName;}/***2018年10月24日下午8:48:58*这个函数的功能是判断文件后缀是否是jpg格式*/publicstaticbooleanisGif(FileItemitem){StringfileFullName=item.getName();FilefileInfo=newFile(fileFullName);Stringsuffix=fileInfo.getName().substring(fileInfo.getName().lastIndexOf(".")+1);if(suffix.equals("jpg")){returntrue;}returnfalse;}}

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

3、创建zhuce.jsp:

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

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

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

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

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

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

4、创建上传图片的UserServlet:protectedvoiddoGet(Http讵症慧鹱ServletRequestrequest,HttpServletRespo荏鱿胫协nseresponse)throwsServletException,IOException{//TODOAuto-generatedmethodstub//获取本次操作的类型Stringtype=request.getParameter("type");//注册try{switch(type){case"zhuce":user_zhuce(request,response);break;}}catch(SQLExceptione){e.printStackTrace();}}//注册protectedvoiduser_zhuce(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,SQLException,ServletException{Stringuname=null;//用户名Stringunickname=null;//昵称Stringupass1=null;//密码Stringupass2=null;//二次输入的密码Stringuemail=null;//邮箱List<String>list=newArrayList<String>();Stringfilename=PhotoDao.getPhotoNewName();//ServletContextservletContext=null;servletContext=request.getSession().getServletContext();//获取文件的真实路径:在数据库中存储格式:/webTest/img/***.jpg//第一步:获取页面上上传的图片资源List<org.apache.commons.fileupload.FileItem>items=PhotoDao.getRequsetFileItems(request,servletContext);//booleanisLoadToSQL=false;for(org.apache.commons.fileupload.FileItemitem: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;}}}StringfinalPhotoName="./img/"+filename;Useruser=newUser();booleanflag=user.adduser(uname,unickname,upass1,upass2,uemail,finalPhotoName);if(flag==false){JOptionPane.showMessageDialog(null,"用户注册失败!","警告信息",JOptionPane.WARNING_MESSAGE);request.getRequestDispatcher("./zhuce.jsp").forward(request,response);}elserequest.getRequestDispatcher("./login.jsp").forward(request,response);}protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//TODOAuto-generatedmethodstubdoGet(request,response);}}

5、效果图如下:

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

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

eclipse误删项目怎么恢复 如何修改Eclipse的默认浏览器? sql server怎么将数据库导出为sql文件 如何使用MyeElipse创建java项目 MyEclipse设置主题背景
热门搜索
传递正能量图片 少数民族的图片 学园默示录动漫 动漫邪恶漫画 虐心动漫