Servlet实现单个图片,多个图片上传和图片的显示功能

Posted SmallCuteMonkey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet实现单个图片,多个图片上传和图片的显示功能相关的知识,希望对你有一定的参考价值。

注意:servlet3.0以后才有request.getPart("")这个方法, tomcat7 的环境下就没有part.getSubmittedFileName()这一方法,无法直接获取文件名

  1. 建立upFile.html或者jsp文件进行相关的上传
  2. 使用form表单进行相关的上传功能 里面设置 enctype=“multipart/form-data” 这个是进行二进行文件上传操作的属性设置
  3. 注意一下input的type="file"
  4. 请求必须是method=“post”,默认为get请求 ,用action=""请求 的servlet路径操作
  5. Servlet上面加上**@MutipartConfig注解里面可以写上上传地址属性location=""**
  6. 由于上传图片的名字可能重复所以 可以用UUID这个工具类进行生成图片的名字的操作,这样就可以图片不会覆盖
  7. UUID介绍:UUID,全名叫做 Universally Unique Identifier,也就是通用唯一标识符的意思。
    格式
123e4567-e89b-12d3-a456-556642440000
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

第一部分的长度为 8,第二部分和第三部分的长度为 4,第四部分的长度为 12,总长度为 36,
重点应用:

随机生成的文件名;
Java Web 应用程序的 sessionID;
数据库表的主键;

事务 ID(UUID 生成算法非常高效,每台计算机每秒高达 1000 万次)。

创建 upFileServelt.java类:

package com.nt.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.IOException;
import java.util.UUID;

@WebServlet(name = "UpFileServlet",urlPatterns = "/Upservlet")
//文件上传的位置
@MultipartConfig(location = "E:/img",maxFileSize = 1024*1024*5)
public class UpFileServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {



        Part part = req.getPart("myfile");

//        tomcat7 的环境下就没有part.getSubmittedFileName()这一方法,无法直接获取文件名
//        String filename = part.getSubmittedFileName();


        String cd = part.getHeader("Content-Disposition");
//截取不同类型的文件需要自行判断
        String filename = cd.substring(cd.lastIndexOf("=")+2, cd.length()-1);

        String filename1= UUID.randomUUID().toString() + ".jpg";
        part.write(filename1);




    }
}

upFile.jsp:

<%--
  Created by IntelliJ IDEA.
  User: CourageAndLove
  Date: 2021/7/28
  Time: 9:47
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>文件上传</title>
</head>
<body>


<form action="Upservlet" method="post" enctype="multipart/form-data">

    <input type="file" name="myfile">

    <input type="submit" value="提交">

</form>


</body>
</html>

多个文件的上传,只需**多加几个input type=“file”**的操作

以上是关于Servlet实现单个图片,多个图片上传和图片的显示功能的主要内容,如果未能解决你的问题,请参考以下文章

ckeditor 实现 servlet 图片上传 配置

如何使用jsp和servlet将多个图像上传到文件夹[重复]

webjsp中用fileupload上传图片,选择图片后没有反应

Java Servlet图片上传至指定文件夹并显示图片

实现点击单个图片的多图上传

基于HTML5和JSP实现的图片Ajax上传和预览