关于文件上传只能用表单提交而不能异步提交的问题
2018-01-05 10:53
633 查看
1.文件(图片/文档)上传就spring自带上传工具而言,只能用表单提交submit方式进行,不能使用ajax异步提交表单,因为异步提交之后input标签的内容就被springMVC解析成了字符串,无法获取文件名称和地址。页面如下:
2.js代码如下:
3.当然可以用多种方式去提交表单,但是ajax异步请求不行。后台代码如下(input之所以
4.如此就遇到一个尴尬的场面,当你存储完文件之后,想返回存储路径到当前页面时,发现根本跳不过去,异步请求又不行,如此求助各路大牛终于找到解决办法:
1)引入js文件 jQuery-form.js文件(官网可以下载,或者加入下面的群群文件有);
2)页面js代码改造:
3)如此就获取到后台返回的文件存储路径img_url
有什么问题欢迎入群研讨
<form name="fileForm" id="fileForm" action="/manage/img/upload" method="post" enctype="multipart/form-data"> <table> <tr> <td align="right"> <label style="font-size: 15px;">添加图片:</label> </td> <td> <input type="file" name="file"> <button type="button" onclick="uploadFormSubmit();">上传</button> </td> </tr> </table> </form>
2.js代码如下:
function uploadFormSubmit(){
var fo = document.getElementsByName("fileForm"); $(fo).submit();}
3.当然可以用多种方式去提交表单,但是ajax异步请求不行。后台代码如下(input之所以
type="file" name="file" 因为后台会有一个专门的file文件类去接收上传的文件,框架封装):
@RequestMapping(value = "/manage/img/upload",method = RequestMethod.POST) public Object imgUpload(@RequestParam("file") CommonsMultipartFile file){ logger.info("=====上传图片=====图片:"+file); String path="D:/"+file.getOriginalFilename(); File newFile=new File(path); //通过CommonsMultipartFile的方法直接写文件(注意这个时候) try{ file.transferTo(newFile); }catch (Exception e){ } return path; }
4.如此就遇到一个尴尬的场面,当你存储完文件之后,想返回存储路径到当前页面时,发现根本跳不过去,异步请求又不行,如此求助各路大牛终于找到解决办法:
1)引入js文件 jQuery-form.js文件(官网可以下载,或者加入下面的群群文件有);
2)页面js代码改造:
function uploadFormSubmit(){ /*var fo = document.getElementsByName("fileForm"); $(fo).submit();*/ $("#fileForm").ajaxSubmit({ url: "/manage/img/upload", type: "post", success: function (data) { var img_url = data.body; } }); }
3)如此就获取到后台返回的文件存储路径img_url
有什么问题欢迎入群研讨
相关文章推荐
- 关于文件上传和普通字段表单提交的问题
- 文件上传类型表单不能提交的问题
- 话题:jQuery 关于文件上传表单处理的一个非常怪异的问题
- 【jQuery】Jquery.form.js实现表单异步提交以及文件上传(带进度条)
- [Ajax] 使用Ajax异步上传图片文件(非Form表单提交)
- 文件上传(jspsmart实现)file和text表单同时提交的问题
- 文件的上传+下载+表单的重复提交问题 +自定义拦截器:
- SmartUpload实现文件上传时file和表单文本同时提交的问题
- ajax异步上传文件,ajax提交表单中的文件到后台解析
- jqeury form 提交表单的问题(上传文件进度)
- jquery的异步提交表单(异步上传文件)及jquery.form.js上传文件注意事项
- 研究了三天的文件上传(jspsmart实现)file和text表单同时提交的问题
- JQuery异步提交表单与文件上传功能示例
- html使用iframe实现伪异步表单,实现无刷新上传文件时遇到的问题
- 解决firefox3.0,ie8 在上传文件时只能获得文件名,而不能获得文件路径的问题
- jquery插件---模拟from表单上传文件,实现异步提交
- 解决post提交表单(文件上传) request.getParameter 取值为空的问题
- JSPSmart实现文件上传时file和text表单同时提交的问题
- 表单包含file上传文件提交,使用ajaxSubmint或者ajaxForm 遇到的问题以及解决方法
- ajax表单提交上传文件(异步上传与文本编辑器)