实现文件上传进度条功能
2018-01-09 16:42
232 查看
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>新建网页</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="description" content="" /> <meta name="keywords" content="" /> <script type="text/javascript"> //javascript+ajax无刷新方式form表单提交 window.onload = function(){ var fm = document.getElementsByTagName('form')[0]; //表单提交事件 fm.onsubmit = function(evt){ //① 收集用户输入的表单域信息[FormData] var fd = new FormData(fm);//普通表单域 + 上传文件域信息 //② 并把收集的信息提交给服务器端[ajax] var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ if(xhr.readyState==4){ alert(xhr.responseText); } } xhr.upload.onprogress = function(evt){ //该事件每间隔100ms左右就执行一次, //并可以通过事件对象感知附件信息 //附件已经上传大小 var lod = evt.loaded; //附件总大小 var tal = evt.total; //上传百分比 var per = Math.floor((lod/tal)*100) + "%"; //给son的div设置宽度百分比 document.getElementById('son').innerHTML= per; document.getElementById('son').style.width = per; } xhr.open('post','./06.php'); xhr.send(fd); //阻止浏览器form表单的提交动作 evt.preventDefault(); } } </script> <style type="text/css"> #pat {width:460px; height:40px;border:4px solid blue;} #son {width:0; height:100%; background-color:lightblue;} </style> </head> <body> <h2>用户注册(无刷新方式附件上传)</h2> <form method="post" action="./1001.php"> <p>用户名:<input type="text" id="mingzi" name="username" /></p> <p>密码:<input type="password" id="mima" name="userpwd" /></p> <p>邮箱:<input type="text" id="youxiang" name="useremail" /></p> <div id="pat"><div id="son"></div></div> <p>头像:<input type="file" id="touxiang" name="userpic" /></p> <p><input type="submit" value="注册" /></p> </form> </body> </html>
<?php //收集到:普通表单域信息 + 上传文件域信息 //echo "post:"; //print_r($_POST); //echo "file:"; //print_r($_FILES); if($_FILES['userpic']['error']>0){ exit('附件有错误'); } //附件上传逻辑 $path = "./upload/"; $name = date("YmdHis").'-'.mt_rand(1000,9999);//附件的名字 $name_arr = explode('.',$_FILES['userpic']['name']); $ext = ".".$name_arr[count($name_arr)-1]; //附件的后缀 $pathname = $path.$name.$ext;//附件真实路径名 if(move_uploaded_file($_FILES['userpic']['tmp_name'],$pathname)){ echo "success"; }else{ echo "fail"; }
相关文章推荐
- Android实现文件上传和下载倒计时功能的圆形进度条
- html表单结合php实现上传文件功能并且监控文件上传的进度
- 【转】用Struts2实现文件上传时显示进度条功能
- Struts2实现文件上传时显示进度条功能
- PHP+Ajax实现上传文件进度条动态显示进度功能
- 用Struts2实现文件上传时显示进度条功能
- PHP中使用Session配合Javascript实现文件上传进度条功能
- PHP中使用Session配合Javascript实现文件上传进度条功能
- jquery 实现拖动文件上传加载进度条功能
- JS实现批量上传文件并显示进度功能
- PHP中使用Session配合Javascript实现文件上传进度条功能
- AJAX实现基于WEB的文件上传的进度控制
- AJAX+JSP实现基于WEB的文件上传的进度控制,作者:刘作晨
- winform如何实现上传文件功能?
- 使用Ext js和SwfUpload实现批量文件上传(有上传进度条)
- PHP+FLASH实现上传文件进度条相关文件 下载
- struts1.2下实现文件上传进度条
- AJAX和JSP实现的基于WEB的文件上传的进度控制代码第1/2页
- 利用DWR实现文件上传进度条
- AJAX和JSP实现的基于WEB的文件上传的进度控制代码第1/2页