原生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实现UTF8编码转换成gb2312编码
Dec 22 Javascript
encode脚本和normal脚本混用的问题与解决方法
Mar 08 Javascript
jQuery学习笔记之jQuery动画效果
Sep 09 Javascript
JS去除字符串两端空格的简单实例
Dec 27 Javascript
iframe子页面与父页面在同域或不同域下的js通信
May 07 Javascript
node.js中的fs.writeFile方法使用说明
Dec 14 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
Aug 21 Javascript
Ionic 2 实现列表滑动删除按钮的方法
Jan 22 Javascript
JavaScript 事件流、事件处理程序及事件对象总结
Apr 01 Javascript
Javascript实现数组中的元素上下移动
Apr 28 Javascript
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
Oct 16 Javascript
js数据类型检测总结
Aug 05 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中MD5函数使用实例代码
2008/06/07 PHP
分享自定义的几个PHP功能函数
2015/04/15 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
Yii2如何批量添加数据
2016/05/17 PHP
Javascript的IE和Firefox兼容性汇编
2006/07/01 Javascript
img的onload的另类用法
2008/01/10 Javascript
javascript preload&amp;lazy load
2010/05/13 Javascript
jQuery编写widget的一些技巧分享
2010/10/28 Javascript
innerHTML与jquery里的html()区别介绍
2012/10/12 Javascript
解析javascript 实用函数的使用详解
2013/05/10 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
jQuery select自动选中功能实现方法分析
2016/11/28 Javascript
JS数组排序方法实例分析
2016/12/16 Javascript
angular中不同的组件间传值与通信的方法
2017/11/04 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
mpvue构建小程序的方法(步骤+地址)
2018/05/22 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
Python中关于使用模块的基础知识
2015/05/24 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
Python3实现从排序数组中删除重复项算法分析
2019/04/03 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
2019/05/10 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
使用keras实现densenet和Xception的模型融合
2020/05/23 Python
PythonPC客户端自动化实现原理(pywinauto)
2020/05/28 Python
Strathberry苏贝瑞中国官网:西班牙高级工匠手工打造
2020/10/19 全球购物
学前教育教师求职自荐信
2013/09/22 职场文书
工厂仓管员岗位职责
2014/01/01 职场文书
学生党支部先进事迹
2014/02/04 职场文书
文明城市创建标语
2014/06/16 职场文书
北京奥运会口号
2014/06/21 职场文书
国际贸易毕业生求职信
2014/07/20 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
刑事附带民事起诉状
2015/05/19 职场文书