问题遇到的现象和发生背景
java.io.FileNotFoundException:
问题相关代码,请勿粘贴截图
package com.unit8.servlet;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.UUID;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.http.Part;
@MultipartConfig //使得之前的Servlet 可以接收文件上传
public class Servlet8 extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("GBK");
request.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();
System.out.println("helloworld");
out.print("测试一下");
Part part = request.getPart("dddd"); //接收上传的文件
String cd = part.getHeader("Content-Disposition");
//截取不同类型的文件需要自行判断
String filename = cd.substring(cd.lastIndexOf("."), cd.length());
System.out.println("文件名:"+cd);
System.out.println("后缀名:"+filename);
String newFileName = UUID.randomUUID()+filename; //写入文件新的名字
String serverPath=request.getServletContext().getRealPath("upload"); //获取服务器文件上传路径
System.out.println("服务器upload路径:"+serverPath);
File f1 =new File(serverPath+"\\"+newFileName);
System.out.println(serverPath+"\\"+newFileName);
FileOutputStream fos =new FileOutputStream(f1);//创建服务器文件写入对象--输出流
InputStream is = part.getInputStream();//获取文件读取对象--输入流
byte[] a = new byte[1024];//存放文件的byte数组
int length =is.read(a);
while(length!=-1){
fos.write(a, 0, length);
length = is.read(a);
}
out.print("文件写入成功");
fos.close();
is.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
System.out.println("wahaha");
response.setContentType("text/html");
// PrintWriter out = response.getWriter();
}
public void init() throws ServletException {
// Put your code here
}
}