Ajax上传File对象到服务器

Posted 代码很疯狂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax上传File对象到服务器相关的知识,希望对你有一定的参考价值。

html代码:

<input type="file" name="uploadFile" id="uploadFile">

javascript:

$("#uploadFile").on("change", function() {
  var formData = new FormData();                      // 创建一个form类型的数据
  formData.append(‘file‘,‘$("#uploadFile")[0].files);     // 获取上传文件的数据
  $.ajax({
    url: "/API/Face/SubmitFile",
    type: "POST",
    processData: false, // 将数据转换成对象,不对数据做处理,故 processData: false 
    contentType: false,    // 不设置数据类型
    xhrFields: {                // 这样在请求的时候会自动将浏览器中的cookie发送给后台
      withCredentials: true
    },
    data: formData,
    success: function(data) {
      console.log(data)
    },
    error: function(data) {
    }
  })
})

 java代码

    @RequestMapping(value ="/SubmitFile",method = RequestMethod.POST)
    public JsonResult SubmitFile(HttpServletRequest request, HttpServletResponse response) {
        try {
            String faceuid=UUID.randomUUID().toString();
            MultipartHttpServletRequest filerequest=(MultipartHttpServletRequest)request;
            MultipartFile file=filerequest.getFile("file");
       //保存file并返回路径 String localfilepath
= FileHelper.SaveMultipartFile(file, WebConfig.getUploaddir(), "face", faceuid + ".jpg"); return Json.getJsonResult(true,localfilepath); }catch(Exception ex) { return Json.getJsonResult(ex.getMessage()); } }

 

以上是关于Ajax上传File对象到服务器的主要内容,如果未能解决你的问题,请参考以下文章

Ajax--FormData实现二进制文件上传

在rails中将对象上传到Amazon s3时添加Tag

C# Asp.net使用FormData对象实现ajax提交表单及上传图片

ajax上传图片

.Net之使用Jquery Ajax通过FormData对象异步提交图片文件到服务端保存并返回保存的图片路径

通过Ajax使用FormData对象无刷新上传文件