springMVC+ajax 文件上传 带进度条
2016-05-16 18:20
483 查看
前端代码
<script type="text/javascript"> function UpladFile() { var fileObj = document.getElementById("file").files[0]; // js 获取文件对象 var FileController = "http://localhost:8080/xiaochangwei/file/upload"; // 接收上传文件的后台地址 // FormData 对象 var form = new FormData($( "#uploadForm" )[0]); // XMLHttpRequest 对象 var xhr = new XMLHttpRequest(); xhr.open("post", FileController, true); xhr.onload = function () { // alert("上传完成!"); }; xhr.upload.addEventListener("progress", progressFunction, false); xhr.send(form); } function progressFunction(evt) { var progressBar = document.getElementById("progressBar"); var percentageDiv = document.getElementById("percentage"); if (evt.lengthComputable) { progressBar.max = evt.total; progressBar.value = evt.loaded; percentageDiv.innerHTML = Math.round(evt.loaded / evt.total * 100) + "%"; if(evt.loaded==evt.total){ alert("上传完成100%"); } } } </script> <br /> <br /> <br /> <br /> <progress id="progressBar" value="0" max="100"></progress> <span id="percentage"></span> <br /> <br /> <br /> <br /><form id= "uploadForm"> <input type="file" id="file" name="myfile" /> <input type="button" onclick="UpladFile()" value="上传" /></form>
后端代码
@RequestMapping(value = "/upload", method = RequestMethod.POST) public String upload(HttpServletRequest request, @RequestParam("file") MultipartFile file, ModelMap model) { System.out.println("开始"); String path = request.getSession().getServletContext().getRealPath("upload"); String fileName = file.getOriginalFilename(); // String fileName = new Date().getTime()+".jpg"; System.out.println(path); File targetFile = new File(path, fileName); if (!targetFile.exists()) { targetFile.mkdirs(); } // 保存 try { file.transferTo(targetFile); } catch (Exception e) { e.printStackTrace(); } model.addAttribute("fileUrl", request.getContextPath() + "/upload/" + fileName); return "result"; }
相关文章推荐
- javamail 发送邮件
- Spring-boot Mybatis多数据源事务配置
- Java之运行时异常与编译时异常区别
- Java的12种设计模式
- Java多线程
- Spring Integeration学习
- java环境变量配置
- java基础第七天_匿名内部类、异常、包和jar
- SpringMVC文件上传 Excle文件 Poi解析 验证 去重 并批量导入 MYSQL数据库
- listView adapter 的java.lang.IllegalStateException
- java 代码分析工具——JDepend
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
- myeclipse中的js文件报错
- myEclipse10.x 配置jad反编译工具
- eclipse的Explorer插件安装
- JAVA设计模式之单例模式
- java JDBC
- Java集合---HashMap源码剖析
- Struts2的整体回顾(Action, 拦截器, 值栈, OGNL表示式, ModelDriven)
- Spring Boot文档