本人JAVA转前端有一段时间了,最近项目用到异步上传文件 ,做java的同事茫然了。。。
得啵得:
众所周知 Ajax没有提供上传文件的方法(兼容方案) 。
form表单提交文件是要跳转页面的。
方法: 通过‘无刷新页面’上传文件 。模拟AJAX
准备工作:
1、主页面写个iframe(隐藏掉),设置name为‘testUpload’(随便起);iframe里记得加文件域<input type="file" />
2、主页面写个form,并设置属性:target="testUpload";
3、再新建一个页面 uploadOK.jsp;
开始:
1、java写个Action (NOde.js 可以整个router),用于上传文件。例:http://domain.com/upload,将设置该action指向uploadOK.jsp。
该action需要返回一些值:但起码要有上传状态和已上传文件的URL;
2、用js给文件域 加change事件(change时提交form);
3、uploadOK.jsp里用window.parent.document.文件显示IMG.src=‘已上传文件的URL’。
完成!