欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

如何HttpServletRequest文件对象并储存

程序员文章站 2022-06-17 21:11:23
核心代码由于httpservletrequest不能直接取出文件数据,所以将其强制转换为multiparthttpservletrequestmultiparthttpservletrequest m...

核心代码

由于httpservletrequest不能直接取出文件数据,所以将其强制转换为multiparthttpservletrequest

multiparthttpservletrequest multipartrequest = (multiparthttpservletrequest) request;
list<multipartfile> files = multipartrequest.getfiles("files");

post

/*提交表单*/
function myupload() {
  $.ajax({
    url:"/exuploadcontroller.do?uploadtest",
    type : "post",
    async: false,
    cache: false, //此处设置false
    contenttype: false,//必须设置false ,formupload1表单中必须设置enctype="multipart/form-data"
    processdata: false, //必须设置fals
    data :new formdata(document.getelementbyid("myform")),
    success:function (data) {
      alert(data);
    },
    error:function (xmlhttprequest, textstatus, errorthrown) {
      console.log(xmlhttprequest);
      console.log(textstatus);
      console.log(errorthrown);
    }
  })
}

servlet

	httpservletrequest request;
      //获取上传图片
      multiparthttpservletrequest mureq = (multiparthttpservletrequest) request;
      map<string, multipartfile> files = mureq.getfilemap(); 
      multipartfile file =null;
      if (files != null &&files.size()> 0) { 
        
        map.entry<string, multipartfile> f = files.entryset().iterator().next(); 
        file = f.getvalue();
      } 

      //获取项目部署的路径

      string rootpath = request.getsession().getservletcontext().getrealpath("/");

     //获取上传图片的名称
      string filename = file.getoriginalfilename();

      

     //获取上传图片的大小
      float size = file.getsize()

      //在path路径下创建一个文件

      file newfile = new file(path);

      //判断文件是否存在
      if(!newfile.exists()) {
        newfile.mkdirs();//不存在的话,就开辟一个空间
      }
      //将上传的文件存储
      file.transferto(newfile);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。