获取HttpServletRequest中的文件对象并储存

管理员 106次浏览

摘要:获取HttpServletRequest中的文件对象并储存

正文:

					
					    

核心代码:

由于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
           //必须设置false ,formupload1表单中必须设置enctype="multipart/form-data"
           contentType: false,
           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);



参考自:https://www.cnblogs.com/effortfordream/p/13301839.html



表情

共0条评论