原生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闭包 新手版
Dec 28 Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
Apr 19 Javascript
JavaScript匿名函数与委托使用示例
Jul 22 Javascript
JS实现清除指定cookies的方法
Sep 20 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
Sep 21 Javascript
基于vue.js快速搭建图书管理平台
Oct 29 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
Dec 14 Javascript
Javascript实现秒表倒计时功能
Nov 17 Javascript
javascript面向对象三大特征之封装实例详解
Jul 24 Javascript
BootstrapValidator实现表单验证功能
Nov 08 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
Nov 17 Vue.js
分享一个vue实现的记事本功能案例
Apr 11 Vue.js
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
浅析使用Turck-mmcache编译来加速、优化PHP代码
2013/06/20 PHP
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
PHP开发中AJAX技术的简单应用
2015/12/11 PHP
Zend Framework自定义Helper类相关注意事项总结
2016/03/14 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
google 搜索框添加关键字实现代码
2010/04/24 Javascript
js判断输入是否为数字的具体实例
2013/08/03 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
2013/12/06 Javascript
js实现网页倒计时、网站已运行时间功能的代码3例
2014/04/14 Javascript
谷歌地图打不开的解决办法
2014/08/07 Javascript
jquery实现的代替传统checkbox样式插件
2015/06/19 Javascript
理解Angular数据双向绑定
2016/01/10 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
BootStrap给table表格的每一行添加一个按钮事件
2017/09/07 Javascript
JS数组进阶示例【数组的几种函数用法】
2020/01/16 Javascript
js获取本日、本周、本月的时间代码
2020/02/01 Javascript
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
[55:35]VGJ.S vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python 判断自定义对象类型
2009/03/21 Python
python 开发的三种运行模式详细介绍
2017/01/18 Python
Python 模块EasyGui详细介绍
2017/02/19 Python
利用python求相邻数的方法示例
2017/08/18 Python
Python3按一定数据位数格式处理bin文件的方法
2019/01/24 Python
使用coverage统计python web项目代码覆盖率的方法详解
2019/08/05 Python
Python搭建代理IP池实现存储IP的方法
2019/10/27 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
Python3 hashlib密码散列算法原理详解
2020/03/30 Python
Monki官网:斯堪的纳维亚的独立时尚品牌
2020/11/09 全球购物
市场安全管理制度
2014/01/26 职场文书
2014元旦晚会策划方案
2014/02/19 职场文书
优秀少先队辅导员先进事迹材料
2014/05/18 职场文书
介绍信的格式
2015/01/30 职场文书
四则混合运算教学反思
2016/02/23 职场文书
员工工作心得体会
2019/05/07 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python