SpringMVC和Ajax实现文件上传功能,表单和非表单。
1.pom文件添加依赖。
下面的demo会有
2.配置文件
web.xml 配置文件,就是基本的 springmvc 配置
springmvc-config.xml 配置文件,主要用到了spring的上传插件
3. controller 类
用 commons-fileupload,commons-io 两个类库实现文件的下载。
4.jsp和js
jsp页面用了两种方式,一种是 form表单 提交,一种是无form表单
js中第一种是处理 form表单的提交,第二种是 js模拟form表单提交
5.总结
文件上传其实是浏览器把文件以二进制数据发送给服务器,服务器通过IO保存到本地的过程。form表单通过enctype="multipart/form-data"属性,告知浏览器该文件是需要以二进制数据上传。而controller获取参数时,实际是获取form表单FormData 中的 key 值(即二进制value)
注意:
第一种form 表单中 的name值 要与 controller 中接收参数保持一致
第二种 无form表单通过 js 模拟form 表单,FormData 元素添加的key 要与 controller 中接收参数保持一致