[Java手记]文件上传
文件上传
//前端
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<!--action表示要将表达数据交给那个程序处理-->
<form action="/MyWeb_war_exploded/Servlet" method="post" enctype="multipart/form-data">
<input type="file" name="myfile">
<input type="submit" value="上传文件">
</form>
</body>
</html>
//Servlet
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.*;
import java.util.UUID;
@WebServlet(name = "Servlet", value = "/Servlet")
@MultipartConfig //表示当前Servlet可以接受前端文件上传
public class Servlet extends HttpServlet {
//处理Get请求
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");//设置响应数据的编码方式
request.setCharacterEncoding("UTF-8");//设置请求编码
PrintWriter pw=response.getWriter();
pw.print("<head><meta charset=\"UTF-8\"><meta http-equiv=\"refresh\" content=\"3;url=index.html\"></head>");
Part part=request.getPart("myfile");//接收上传的文件
//处理文件名代码段
String fileName=part.getSubmittedFileName();//获取上传的文件名
//获取文件名的后缀
String suffix=fileName.substring(fileName.lastIndexOf("."),fileName.length());//从文件名的点到最后结尾
System.out.println("文件名:"+suffix);
//UUID获取一个随机的ID信息,创建一个写入服务器文件的文件名称
String newFileName=UUID.randomUUID()+suffix;
//获取upload在服务器里真实路径
String serverPath=request.getServletContext().getRealPath("upload");
//创建服务器的文件对象
FileOutputStream fos=new FileOutputStream(serverPath+"/"+newFileName);
System.out.println("服务器的路径:"+serverPath);
//处理文件上传代码段
InputStream is=part.getInputStream();
byte[] b=new byte[1024];//存放文件的byte数组
int length=is.read(b);
while (length!=-1){
fos.write(b,0,length);//写入到服务器
length=is.read(b);
}
pw.print("文件上传成功-3秒后返回页面");
fos.close();
is.close();
}
//处理Post请求
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
屠龙少年!
喜欢就支持一下吧