文件上传的问题

本贴最后更新于 2829 天前,其中的信息可能已经时移世异

spring mvc 上传文件

  • 一般通过 form 表单的请求上传的文件,大家都会,通过对 form 表单加 enctype="multipart/form-data" 属性可以把文件变成二进制流。
  • 但是,最近又遇到难题了,通过 ajax 上传文件,当用户选中图片后,通过调用 jquery 的 change 事件,来触发 ajax 来上传文件。
  • 这里用到了 H5 的 fromdata

ajax 代码

	$('#file').change(function () {
		   var formdData = new FormData($('#file')[0].files[0]);

	  $.ajax({
					  url:"uploadWorkImg",
					  data:formdData,
					  dataType:"String",
					  async:false,
					  contentType: false,
					  processData: false,
					  success:function (data) {
							 alert(data);
					  }
	   });
	})
	
  • 这里的 file 是 input 文件的 id(只上传一个图片)

spring mvc 接收到的文件

	@RequestMapping(value = "/uploadWorkImg")
	public @ResponseBody String uploadimg(@RequestParam("file") MultipartFile multipartFile)
	{
			System.out.println(multipartFile.getOriginalFilename());//这里只让他输出试试。
		   return "success";
	}
  • 然后就报错了
    QQ 截图 20160813195058.png

问题

  • 这里的当前不是 multipart request。觉得这应该和 file 有关,转而把 file 封装到一个带 enctype="multipart/form-data" 属性 form 带表单中,然后将 form 表单,添加到 formdata 中。结果还是一样的错误。
  • 不太理解 MultipartFile 这个接口,要能实现用 MultipartFile 来接收文件,还需要什么条件。
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    943 引用 • 1460 回帖 • 1 关注
  • 文件上传
    8 引用 • 133 回帖
  • FormData
    1 引用 • 4 回帖
  • AJAX
    26 引用 • 96 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • zk123
    作者

    创建 formdata 有点误。var formdData = new FormData();formData.append("file",$('#file')[0].files[0]);

  • zk123
    作者

    原来是配置问题,找了半天,问题已解决,结贴了~~~

  • 88250

    谢谢分享啦~

  • zk123
    作者

    @88250 客气,客气~