怎么在Java项目中利用Servlet将图片上传到指定的文件夹中

  介绍

今天就跟大家聊聊有关怎么在Java项目中利用Servlet将图片上传到指定的文件夹中,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

<强>步骤一:上传页面uploadphoto。jsp

需要注意两个问题:

1。形式的方法必须是帖子的,不能上传文件,还需要加上enctype=岸嗖糠?form-data"表示提交的数据是二进制文件。

2。需要提供类型=癴ile"的字段进行上传,,,,

& lt; % @  page 语言=癹ava", contentType=皌ext/html;, charset=UTF-8"   ,pageEncoding=癠TF-8" %比;   & lt; ! DOCTYPE  html  PUBLIC “-//W3C//DTD  html  4.01,过渡//EN",“http://www.w3.org/TR/html4/loose.dtd"比;   & lt; html>   & lt; head>   & lt; meta  http-equiv=癈ontent-Type",内容=皌ext/html;, charset=UTF-8"比;   & lt; title> upload  page</title>   & lt;/head>   & lt; body 比;   ,& lt; form  action=皍ploadPhoto",方法=皃ost", enctype=岸嗖糠?form-data"比;   ,,英雄名称:,& lt; input 类型=皌ext", name=癶eroName",/祝辞,& lt; br> & lt; br>,   ,才能上传头像:,& lt; input 类型=癴ile", name=癴ilepath",/祝辞,& lt; br> & lt; br>,   ,,,,& lt; input 类型=皊ubmit",价值=https://www.yisu.com/zixun/鄙洗?>   

<强>步骤二:UploadPhotoServlet类

1。需要用到两个第三方的jar包,commons-io-1.4.jar和commons-fileupload-1.2.2.jar。项目是Maven项目,直接在砰的一声。xml文件中引入:

& lt; dependency>   ,& lt; groupId> commons-io   ,& lt; artifactId> commons-io   ,& lt; version> 2.4 & lt;/version>   & lt;/dependency>   & lt; dependency>   ,& lt; groupId> commons-fileupload   ,& lt; artifactId> commons-fileupload   ,& lt; version> 1.3.1   & lt;/dependency>

2。前部分代码是固定写法,用来做一些准备工作,直到遍历出项目,一个项目就是对应一个浏览器提交的数据,通过项目。getInputStream可以打开浏览器上传的文件的输入流。

,,3.客户提交的文件名有可能是一样的,所以在服务端保存文件的时候,不能使用客户提交的文件名。这里使用的是一种粗糙的解决文件名重复的办法,即使用时间戳。

package  servlet;   import  java.io.File;   import  java.io.FileOutputStream;   import  java.io.IOException;   import  java.io.InputStream;   import  java.io.PrintWriter;   import  java.util.Iterator;   import 并不知道;   import  javax.servlet.ServletException;   import  javax.servlet.http.HttpServlet;   import  javax.servlet.http.HttpServletRequest;   import  javax.servlet.http.HttpServletResponse;   import  javax.servlet.http.HttpSession;   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  UploadPhotoServlet  extends  HttpServlet  {   ,public  static  String  filename =,空;/* *   *,才能   ,*/,private  static  final  long  serialVersionUID =, 1 l;   ,public  void  doGet (HttpServletRequest 请求,HttpServletResponse 响应){   ,}   ,@SuppressWarnings (“rawtypes")   ,public  void  doPost (HttpServletRequest 请求,HttpServletResponse 响应),throws  IOException, ServletException {   DiskFileItemFactory 才能;factory =, new  DiskFileItemFactory ();   ServletFileUpload 才能;upload =, new  ServletFileUpload(工厂);   factory.setSizeThreshold才能(1024,*,1024);   List 才能;items =,空;   try {才能   ,,items =, upload.parseRequest(请求);   ,,},catch  (FileUploadException  e), {   ,,e.printStackTrace ();   ,,}   Iterator 才能;iter =, items.iterator ();   而才能(iter.hasNext ()) {   ,,FileItem  item =, (FileItem), iter.next ();   ,,如果(! item.isFormField ()) {   ,,,//,根据时间戳创建头像文件   ,,,filename =, System.currentTimeMillis (), +,“.jpg";   ,,,System.out.println (request.getContextPath ());   ,,,/* File  f =, new 文件(getServletContext () .getRealPath (“upload")); */,,,File  f =, new 文件(“D://image");   ,,,if  (! f.exists ()), {,   ,,,,f.mkdir (),,   ,,,},   ,,,String  imgsrc =, f  +,“/? +,文件名;   ,,,//,复制文件   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在Java项目中利用Servlet将图片上传到指定的文件夹中