原生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实现的动态文字变换
Jul 28 Javascript
jquery 简单图片导航插件jquery.imgNav.js
Mar 17 Javascript
jquery中ajax调用json数据的使用说明
Mar 17 Javascript
js单例模式的两种方案
Oct 22 Javascript
js数组转json并在后台对其解析具体实现
Nov 20 Javascript
js实现弹窗插件功能实例代码分享
Dec 12 Javascript
JQuery中$.each 和$(selector).each()的区别详解
Mar 13 Javascript
JS动画效果打开、关闭层的实现方法
May 09 Javascript
基于jQuery实现收缩展开功能
Mar 18 Javascript
JS实现前端缓存的方法
Sep 21 Javascript
webpack引入eslint配置详解
Jan 22 Javascript
JavaScript 作用域实例分析
Oct 02 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
PHP - Html Transfer Code
2006/10/09 PHP
PHP中的output_buffering详细介绍
2014/09/27 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
PHP设计模式之适配器模式定义与用法详解
2018/04/03 PHP
div移动 输入框不能输入的问题
2009/11/19 Javascript
防止按钮在短时间内被多次点击的方法
2014/03/10 Javascript
javascript继承机制实例详解
2014/11/20 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
纯js实现仿QQ邮箱弹出确认框
2015/04/29 Javascript
js实现表单及时验证功能 用户信息立即验证
2016/09/13 Javascript
简单实现js进度条加载效果
2020/03/25 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
Vue Extends 扩展选项用法完整实例
2019/09/17 Javascript
[04:44]显微镜下的DOTA2第二期——你所没有注意到的细节
2014/06/20 DOTA
Python制作简单的网页爬虫
2015/11/22 Python
Python设计模式之迭代器模式原理与用法实例分析
2019/01/10 Python
基于python实现KNN分类算法
2020/04/23 Python
Python实例方法、类方法、静态方法的区别与作用详解
2019/03/25 Python
python3使用腾讯企业邮箱发送邮件的实例
2019/06/28 Python
简单了解python PEP的一些知识
2019/07/13 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
python range实例用法分享
2020/02/06 Python
Python 如何展开嵌套的序列
2020/08/01 Python
Html5中localStorage存储JSON数据并读取JSON数据的实现方法
2017/02/13 HTML / CSS
Snapfish英国:在线照片打印和个性化照片礼品
2017/01/13 全球购物
Lookfantastic德国官网:英国知名美妆购物网站
2017/06/11 全球购物
健身场所或家用健身设备:Life Fitness
2017/11/01 全球购物
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
医德医风自我评价
2014/09/19 职场文书
承租经营合作者协议书
2014/10/01 职场文书
2015感人爱情寄语
2015/02/26 职场文书
解除劳动合同通知书范本
2015/04/16 职场文书
大学开学感言
2015/08/01 职场文书
新学期新寄语,献给新生们!
2019/11/15 职场文书
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android