Servlet实现单个图片,多个图片上传和图片的显示功能
Posted SmallCuteMonkey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet实现单个图片,多个图片上传和图片的显示功能相关的知识,希望对你有一定的参考价值。
注意:servlet3.0以后才有request.getPart("")这个方法, tomcat7 的环境下就没有part.getSubmittedFileName()这一方法,无法直接获取文件名
- 建立upFile.html或者jsp文件进行相关的上传
- 使用form表单进行相关的上传功能 里面设置 enctype=“multipart/form-data” 这个是进行二进行文件上传操作的属性设置
- 注意一下input的type="file"
- 请求必须是method=“post”,默认为get请求 ,用action=""请求 的servlet路径操作
- Servlet上面加上**@MutipartConfig注解里面可以写上上传地址属性location=""**
- 由于上传图片的名字可能重复所以 可以用UUID这个工具类进行生成图片的名字的操作,这样就可以图片不会覆盖
- 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实现单个图片,多个图片上传和图片的显示功能的主要内容,如果未能解决你的问题,请参考以下文章
如何使用jsp和servlet将多个图像上传到文件夹[重复]