Web-Servlet基础部分,通过拼接HTML代买的形式完成图片的导入以及展示
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--文件上传使用post-->
<form action="LoadDemo" method="post" enctype="multipart/form-data" >
<input type="file" name="avatar"><br>
<input type="submit" > <br>
<!-- <a href="download?name=666.mp4">666.mp4</a><br>-->
</form>
</body>
</html>
package com.blackrui;
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.*;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.SocketException;
import java.util.Collection;
import java.util.UUID;
/*
Web-Servlet
实现将任意路径图片导入到服务器,
并将导入的内容展示在HTML页面
*/
@WebServlet(value ="/LoadDemo", name = "PictureImpl")
@MultipartConfig
public class PictureImpl extends HttpServlet {
private String fileLocation="E:/nginx-1.17.2/html/";
private String fileServer ="http://localhost/";
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
Part part=req.getPart("avatar");
//通过content-disposition来获取文件的名字
String contentDisposition=part.getHeader("content-disposition");
// String content-contentdisposition=part.getHeader("")
//indexOf 记录字符首次出现的位置,
System.out.println(contentDisposition);
String str="filename=\"";
int it =contentDisposition.indexOf(str)+str.length();
String string=contentDisposition.substring(it,contentDisposition.length()-1);
System.out.println(string);
String fileSuffix = string.substring(string.indexOf("."));
String newFileName= UUID.randomUUID().toString()+fileSuffix;
// part.getName();//获取了
// Collection<String>coll= part.getHeaderNames();
//
// for(String str: coll){
//
// System.out.println(str);
// }
InputStream inputStream = part.getInputStream();
OutputStream outputStream = new FileOutputStream(fileLocation+ newFileName);
byte[] bs = new byte[1024];
int length=0;
while ((length=inputStream.read(bs))!=-1){
outputStream.write(bs,0,length);
}
outputStream.flush();
outputStream.close();
inputStream.close();
resp.setContentType("text/html;charset=utf-8");
PrintWriter writer= resp.getWriter();
StringBuffer html = new StringBuffer();
html.append("<html>").append("<head></head>")
.append("<body><h1>上传成功</h1>")
.append("<img src=\""+fileServer+newFileName+"\">")
.append("<video src=\"" + fileServer + newFileName + "\" width=\"600\" height=\"400\" autoplay>")
.append("</body></html>");
writer.write(html.toString());
writer.flush();
writer.close();
}
}