文件的上传于下载--基础版

文件的上传案例(下载待定)

  • 前端
    • 上传
<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();
      	}
      }
      
      
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章