原生JS上传大文件显示进度条 php上传文件代码


Posted in Javascript onMarch 27, 2020

JS原生上传大文件显示进度条,php上传文件,供大家参考,具体内容如下

原生JS上传大文件显示进度条 php上传文件代码

在php.ini修改需要的大小:

upload_max_filesize = 8M   
post_max_size = 10M   
memory_limit = 20M 

<!DOCTYPE html>
<html>
<head>
 <title>原生JS大文件显示进度条</title>
 <meta charset="UTF-8">
 <style type="text/css">
 #parent{position: relative;width: 500px;height:20px;border:1px solid #ccc;display: none;border-radius:20px}
 #child{position: absolute;width:0%;height:20px;background: #5FB878;display: none;line-height: 20px;color: #ffffff;font-size: 12px;border-radius:20px}
 </style>
 <script type="text/javascript">
 function $(id){
  return document.getElementById(id);
 }
 </script>
</head>
<body>
 <form action="" method="post">
 <div id="parent">
  <div id="child"></div>
 </div>
 <p>上传文件:<input type="file" name="file"></p> 
 <p><input type="submit" value="提交" id="submit"></p>
 </form>
 <script type="text/javascript">
 var oForm = document.getElementsByTagName('form')[0];
 var oSubmit = $('submit');
 //如果多个人同时提交这个表单的时候,由于是异步的请求,互不影响
 oSubmit.onclick = function(){
  try{
  var xhr = new XMLHttpRequest();
  }catch(e){
  var xhr = new ActiveXObject("Msxml2.XMLHTTP");
  }
  xhr.upload.onprogress = function(e){
  var ev = e || window.event;
  var percent = Math.floor((ev.loaded / ev.total)*100); 
  // console.log(percent);
  //将百分比显示到进度条
  $('parent').style.display = 'block';
  $('child').style.display = 'block';
  //将上传进度的百分比显示到child里面
  $('child').style.width = percent+'%';
  $('child').style.textAlign = 'center';
  $('child').innerHTML = percent+'%';
  //判断如果百分比到达100%时候,隐藏掉
  if(percent==100){
   $('parent').style.display = 'none';
   $('child').style.display = 'none';
  }
  }
  xhr.open('post','progress.php',true);
  var form = new FormData(oForm);
  xhr.send(form);
  xhr.onreadystatechange = function(){
  if(xhr.readyState==4 && xhr.status==200){
   eval("var obj ="+xhr.responseText);
   if(obj.status){
   alert('上传成功');
   }else{
   alert('上传失败');
   }
  }
  }
  //阻止表单提交
  return false;
 }
 </script>
</body>
</html>
<?php
 //开始上传
 //注意:文件是windows系统的文件,采用的gbk编码,php文件使用的是utf-8编码
 //我们不能直接修改文件的编码,只能临时修改一下php的编码
 $dst_file = $_FILES['file']['name'];
 $dst_file = iconv('utf-8', 'gbk', $dst_file);
 if(move_uploaded_file($_FILES['file']['tmp_name'],$dst_file)){
 $data['status'] = 1;
 }else{
 $data['status'] = 0;
 }
 echo json_encode($data);

更多精彩内容请参考专题《ajax上传技术汇总》,《javascript文件上传操作汇总》和《jQuery上传操作汇总》进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用javascript操作xml
Nov 04 Javascript
javascript之AJAX框架使用说明
Apr 24 Javascript
详解JavaScript函数绑定
Aug 18 Javascript
js与jquery获取父元素,删除子元素的两种不同方法
Jan 09 Javascript
node.js中的fs.unlink方法使用说明
Dec 15 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
Oct 30 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
Aug 27 Javascript
Three.js快速入门教程
Sep 09 Javascript
jQuery为DOM动态追加事件的方法
Feb 16 Javascript
Bootstrap 响应式实用工具实例详解
Mar 29 Javascript
AngularJS实现的base64编码与解码功能示例
May 17 Javascript
vue 点击展开显示更多(点击收起部分隐藏)
Apr 09 Javascript
vue中遇到的坑之变化检测问题(数组相关)
Oct 13 #Javascript
seaJs使用心得之exports与module.exports的区别实例分析
Oct 13 #Javascript
vue中axios处理http发送请求的示例(Post和get)
Oct 13 #Javascript
JavaScript实现随机数生成器(去重)
Oct 13 #Javascript
AngualrJs清除定时器遇到的坑
Oct 13 #Javascript
React Native中Navigator的使用方法示例
Oct 13 #Javascript
React Native中TabBarIOS的简单使用方法示例
Oct 13 #Javascript
You might like
咖啡与水的关系
2021/03/03 冲泡冲煮
PHP 和 MySQL 基础教程(二)
2006/10/09 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
2011/12/06 PHP
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
2015/03/17 PHP
PHP实现获取中英文首字母
2015/06/19 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
Symfony2安装的方法(2种方法)
2016/02/04 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
jquery isType() 类型判断代码
2011/02/14 Javascript
jQuery在html有效在jsp无效的原因及解决方法
2013/08/02 Javascript
node.js中的fs.writeSync方法使用说明
2014/12/15 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
2015/03/26 Javascript
Jquery实现遮罩层的方法
2015/06/08 Javascript
javascript实现右侧弹出“分享到”窗口效果
2016/02/01 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
在DWR中实现直接获取一个JAVA类的返回值的两种方法
2016/12/25 Javascript
JavaScript之面向对象_动力节点Java学院整理
2017/06/29 Javascript
Node.js的Koa实现JWT用户认证方法
2018/05/05 Javascript
webpack打包react项目的实现方法
2018/06/21 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
Vue-cli@3.0 插件系统简析
2018/09/05 Javascript
基于jQuery拖拽事件的封装
2020/11/29 jQuery
Python语言的面相对象编程方式初步学习
2016/03/12 Python
Python 正则表达式入门(初级篇)
2016/12/07 Python
python爬取淘宝商品详情页数据
2018/02/23 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
Python解决pip install时出现的Could not fetch URL问题
2019/08/01 Python
详解Python Opencv和PIL读取图像文件的差别
2019/12/27 Python
python中threading开启关闭线程操作
2020/05/02 Python
美国专注于健康商品的网站:eVitamins
2017/01/23 全球购物
村党支部书记个人对照材料汇报
2014/10/26 职场文书
2015年党员自评材料
2014/12/17 职场文书
2014年节能工作总结
2014/12/18 职场文书
Nginx实现会话保持的两种方式
2022/03/18 Servers