文件的上传案例(下载待定)
- 前端
- 上传
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">//文件上传
<input type="submit" value="上传">
</form>
-
后端
-
上传
package com.qianfeng.servlet; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; 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; @WebServlet("/upload") @MultipartConfig public class UploadServlet extends HttpServlet{ @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); Part part = request.getPart("files");//获取上传的文件 String text=part.getHeader("Content-Disposition");//获取上传的文件名 //form-data; name="files"; filename="作业.txt" String n = text.split(";")[2].split("=")[1]; String filename=n.substring(1,n.length()-1); InputStream ipt = part.getInputStream();//把上传的文件放入输入流中 byte[] b=new byte[1024]; String realPath = request.getServletContext().getRealPath("/upload"); System.out.println(realPath); File f=new File(realPath);//确定上传地址 File f1=new File(f,filename);//确定上传到指定地址的文件并已filename命名 if(!f.exists()) {//没有路径创建路径 f.mkdir(); } FileOutputStream opt=new FileOutputStream(f1);//创建文件输出流--指定上传后的文件 int len=0; //读取输入流中的内容,然后用设置的缓存字符区B去规定每次写出的输出流的大小, //去一次次的输出流的内容,最后形成文件 while((len=ipt.read(b))!=-1) { opt.write(b,0,len); } //关闭 opt.close(); ipt.close(); } }
-