利用form表单上传图片,图片保存到本地,得到图片名字(后期可以将图片名字存进数据库)
html部分:enctype=“multipart/form-data” 一定要加!
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/ShowimagesServlet" method="post" enctype="multipart/form-data">
上传图片<input type="file" name="photo" ><br>
<input type="submit" value="提交">
</form>
</body>
</html>
工具类:
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
public class UploadUtils {//工具类
public static String upload(Part part, HttpServletRequest request, HttpServletResponse response){
String photo = part.getSubmittedFileName();//获取文件名
photo= UUID.randomUUID()+photo;//为防止重名。加uid
String[] aa = photo.split(".");//判断类型
if(!(photo.endsWith("jpg")||photo.endsWith("png")||photo.endsWith("jpeg"))){
request.setAttribute("type","err");
try {
request.getRequestDispatcher("/html/xiangyingtupian.html").forward(request,response);//如果格式不对,跳转
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
photo="";
}
String path="G:/img";//本地目录
File file = new File(path);
if(!file.exists()){//如果目录不存在就新建一个
file.mkdirs();
}
try {
part.write(path+"/"+photo);//本地名字+文件名字 将文件的名字写入本地
} catch (IOException e) {
e.printStackTrace();
}
return photo;//返回图片的名字
}
}
servlet部分:@MultipartConfig注解一定要加
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;
@WebServlet("/ShowimagesServlet")
@MultipartConfig
public class ShowimagesServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Part part = request.getPart("photo");
//获取文件名
String photo = UploadUtils.upload(part,request,response);//调用工具类中的方法
if(photo==""){
return;
}
System.out.println(photo);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request,response);
}
}