使用FormData进行Ajax请求上传文件的实例代码

servlet3.0开始提供了一系列的注解来配置servlet、filter、listener等等。这种方式可以极大的简化在开发中大量的xml的配置。从这个版本开始,web.xml可以不再需要,使用相关的注解同样可以完成相应的配置。

a.选中上传

b:后台显示

c:上传的文件夹

html代码:

<!doctype html>
<html lang="en">
<head>
 <meta charset="utf-8">
 <title>ajax上传</title>
 <script src="js/jquery-1.12.4.js"></script>
</head>
<body>
 <h1>文件上传</h1>
 <form id="f" enctype="multipart/form-data">
  username:<input type="text" name="username"><br/>
  file1:<input type="file" name="file"><br/>
  file2:<input type="file" name="file"><br/>
  <input type="button" id="btn" value="提交">
 </form>
</body>
<script>
 $(function () {
  $("#btn").on("click",function () {
   //使用formdata对象来提交整个表单,它支持文件的上传
   var formdata=new formdata(document.getelementbyid("f"));
   //额外带来一些数据
   formdata.append("age",14);
   //使用ajax提交
   $.ajax("ajaxupload",{
    type:"post",
    data:formdata,
    processdata:false,//告诉jquery不要去处理请求的数据格式
    contenttype:false,//告诉jquery不要设置请求头的类型
    success:function (data) {
     alert(data);
    }
   });
  })
 })
</script>
</html>

java后台代码:

@webservlet("/ajaxupload")
@multipartconfig //开启上传功能
/**
 * @author hh
 */
public class fileuploadservlet extends httpservlet {
 @override
 protected void service(httpservletrequest req, httpservletresponse resp) throws servletexception, ioexception {
  req.setcharacterencoding("utf-8");
  //获取用户名
  string username=req.getparameter("username");
  //获取年龄
  string age=req.getparameter("age");
  system.out.println(username);
  system.out.println(age);
  //获取项目部署的绝对路径
  string uploadpath=req.getservletcontext().getrealpath("/photos");
  //构建上传的文件夹
  file dir=new file(uploadpath);
  if(!dir.exists()){
   dir.mkdir();
  }
  //获取所有上传的part
  collection<part> parts= req.getparts();
  for (part part:parts) {
   //判断上传的类型是否为空,如果为空则不执行上传
   if(part.getcontenttype()!=null){
    //获取文件名
    string filename=part.getsubmittedfilename();
    //执行上传
    part.write(uploadpath+file.separator+filename);
   }
  }
  //响应上传成功
  resp.getwriter().println("uplaod success");
 }
}

总结

以上所述是小编给大家介绍的使用formdata进行ajax请求上传文件的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对硕编程网站的支持!

相关文章