这课我们讲讲文件上传后端遇到的问题
package com.servlet;
import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
//负责文件上传的Servlet
public class FileUploadServlet extends HttpServlet {
//文件上传一定是POST方式,所以我们用doPost
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// <input type="file" name="file">
//OK,我们的名字没有写错
//ContextPath被我改回了/
//又忘了配web.xml了
String file = req.getParameter("file");
System.out.println(file); //null
//这说明我们没有办法通过request.getParameter()来获取
//转念一想,我们传的是文件,或者说是一个流,那我们可不可以通过流来获取呢?
InputStream inputStream = req.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String str;
while ((str = reader.readLine()) != null)
{
System.out.println(str);
}
/*
------WebKitFormBoundaryJIxMvvlIiZee3v2D
Content-Disposition: form-data; name="file"; filename="file.txt"
Content-Type: text/plain
这个文件将要被上传
------WebKitFormBoundaryJIxMvvlIiZee3v2D--
*/
//成功读到了文件内容,但还附带其他信息,显然也不是我们想要的
//以上就是我们在文件上传后端部分遇到的问题,下节课讲解决办法
}
}