html5用ajax方式实现文件上传并显示进度
来源:互联网 发布:c语言解析教程 麻志毅 编辑:程序博客网 时间:2024/06/05 20:08
<!DOCTYPE html><html><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><head> <title>Html5 Ajax 上传文件</title> <script type="text/javascript"> function UploadFile() { var fileObj = document.getElementById("myfile").files[0]; // js 获取文件对象 var FileController = "upload.php"; // 接收上传文件的后台地址 // FormData 对象 var form = new FormData(); form.append("uploadtype", "html5"); // 可以增加表单数据 form.append("myfile", fileObj); // 文件对象 // XMLHttpRequest 对象 var xhr = new XMLHttpRequest(); xhr.open("post", FileController, true); xhr.onload = function () { var result = eval('(' + xhr.responseText + ')'); if (result.code == 0) { document.getElementById('info').innerHTML = "上传完成!开始处理数据。。。"; processData(result.data); } else { alert(result.msg); } }; 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) + "%"; } } var nid = null; var processhandle = null; function processData(resultnid) { if (!resultnid) { return; } nid = resultnid; processhandle = setInterval(getProgress, 1000); } function getProgress() { var xhr = new XMLHttpRequest(); xhr.open('get', 'getprogress.php?nid=' + nid, true); xhr.onload = function () { var result = eval('(' + xhr.responseText + ')'); //更新进度 var evt = {'lengthComputable': true, 'total': 100, 'loaded': result.progress}; progressFunction(evt); //处理错误 if (result.code > 0) { document.getElementById('info').innerHTML = result.msg; clearInterval(processhandle); } //处理完成 else if (result.progress == 100) { document.getElementById('info').innerHTML = "处理完成:" + result.result.msg; clearInterval(processhandle); } }; xhr.send(); } </script></head><body><span id="info">上传进度</span><br /> <progress id="progressBar" value="0" max="100"></progress> <span id="percentage"></span> <br /><br /> <input type="file" id="myfile" name="myfile" /> <input type="button" onclick="UploadFile()" value="上传" /></body></html>
0 0
- html5用ajax方式实现文件上传并显示进度
- html5通过ajax上传文件并显示进度
- HTML5结合ajax实现文件上传以及进度显示
- html 使用Ajax 实现多文件上传,并显示进度
- 基于HTML5 Ajax实现文件上传并显示进度条
- ajax异步跨域上传文件,并显示上传进度
- HTML5上传文件显示进度
- HTML5上传文件显示进度
- HTML5上传文件显示进度
- Struts2实现文件上传并显示实时进度
- Struts2实现文件上传并显示实时进度
- Servlet上传文件并显示上传进度
- 基于ajax的Html5文件上传插件,带进度并支持图片预览
- Struts2 Ajax 上传文件,显示进度
- java ajax多文件上传并展示上传进度信息
- uploadsample(上传文件和Ajax显示上传进度)
- 用JAVA实现大文件上传及显示进度信息
- 用JAVA实现大文件上传及显示进度信息
- 配置metaq扩展log4j发送消息的坑
- Java虚拟机-内存区域
- JavaScript与Java的区别
- 火车票
- ansible
- html5用ajax方式实现文件上传并显示进度
- yii2 安装
- 非监督学习之k-means聚类算法——Andrew Ng机器学习笔记(九)
- 计算字典树结点
- LinearLayout,RelativeLayout和UI优化的总结
- Linux进程间通信(二)FIFO
- 51nod 1456:小K的技术
- 针对超强手机木马DenDroid的分析与测试
- Spark RDD 转化与行动基础