php设置上传文件代码(PHP大文件切割上传并带进度条功能示例)
类别:编程学习 浏览量:2278
时间:2022-03-28 09:30:50 php设置上传文件代码
PHP大文件切割上传并带进度条功能示例本文实例讲述了php大文件切割上传并带进度条功能。分享给大家供大家参考,具体如下:
前面一篇介绍了php大文件切割上传功能,这里再来进一步讲解php大文件切割上传并带进度条功能。
项目结构图:
14-slice-upload-fix.html文件:
|
<!doctype html> <html> <head> <meta charset= "utf-8" > <meta http-equiv= "x-ua-compatible" content= "ie=edge" > <title>大文件切割上传带进度条</title> <link rel= "stylesheet" href= "" > <script> var xhr = new xmlhttprequest(); //xhr对象 var clock = null; function selfile(){ clock = window.setinterval(sendfile,1000); } var sendfile = ( function (){ const length = 1024 * 1024 * 10; //每次上传的大小 var start = 0; //每次上传的开始字节 var end = start + length; //每次上传的结尾字节 var sending = false; //表示是否正在上传 var fd = null; //创建表单数据对象 var blob = null; //二进制对象 var percent = 0; return ( function (){ //如果有块正在上传,则不进行上传 if (sending == true){ return ; } var file = document.getelementsbyname( 'video' )[0].files[0]; //文件对象 //如果sta>file.size,就结束了 if (start > file.size){ clearinterval(clock); return ; } blob = file.slice(start, end ); //根据长度截取每次需要上传的数据 fd = new formdata(); //每一次需要重新创建 fd.append( 'video' ,blob); //添加数据到fd对象中 up(fd); //重新设置开始和结尾 start = end ; end = start + length; sending = false; //上传完了 //显示进度条 percent = 100 * start/file.size; if (percent>100){ percent = 100; } document.getelementbyid( 'bar' ).style.width = percent + '%' ; document.getelementbyid( 'bar' ).innerhtml = parseint(percent)+ '%' ; }); })(); function up(fd){ xhr.open( 'post' , '13-slice-upload.php' ,false); xhr.send(fd); } </script> <style> #progress{ width:500px; height:30px; border:1px solid green; } #bar{ width:0%; height:100%; background-color: green; } </style> </head> <body> <h1>大文件切割上传带进度条</h1> <li id= "progress" > <li id= "bar" ></li> </li> <input type= "file" name= "video" onchange= "selfile();" /> </body> </html> |
13-slice-upload.php文件:
|
<?php /** * 大文件切割上传,把每次上传的数据合并成一个文件 * @author webbc */ $filename = './upload/upload.wmv' ; //确定上传的文件名 //第一次上传时没有文件,就创建文件,此后上传只需要把数据追加到此文件中 if (! file_exists ( $filename )){ move_uploaded_file( $_files [ 'video' ][ 'tmp_name' ], $filename ); } else { file_put_contents ( $filename , file_get_contents ( $_files [ 'video' ][ 'tmp_name' ]),file_append); } ?> |
运行结果图:
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/baochao95/article/details/52815001
您可能感兴趣
- 用php调用函数的换行(php中关于换行的实例写法)
- php 常见的设计模式(PHP中常用的三种设计模式详解单例模式、工厂模式、观察者模式)
- thinkphp静态怎么设置(浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法)
- PHP如何安装(PHP使用 Pear 进行安装和卸载包的方法详解)
- php一直提示错误(关于php开启错误提示的总结)
- thinkphp5 api开发(thinkphp5框架前后端分离项目实现分页功能的方法分析)
- php入门教程环境搭建教程(PHP从零开始打造自己的MVC框架之入口文件实现方法详解)
- phpstudy服务器怎么设置(phpstudy2018 访问目录服务权限问题)
- dedecms手机独立域名(DedeCMS Wap.php 绑定域名的解决办法)
- thinkphp分页效果怎样(thinkphp5+layui实现的分页样式示例)
- php支付系统(php实现的支付宝网页支付功能示例基于TP5框架)
- phpstudymysql启动又自动停止(Win下解决phpStudy MySQL启动失败)
- php新建文件夹代码(php新建文件的方法实例)
- php商城支付接口(php实现银联商务公众号+服务窗支付的示例代码)
- phpredis怎么实现任务(PHP swoole和redis异步任务实现方法分析)
- php类的属性和方法(PHP进阶学习之反射基本概念与用法分析)
- 三部冷门谍战剧,第一部2014年拍摄,至今还未播出(三部冷门谍战剧)
- 《金陵秘事》的剧情跌宕起伏 给观众带来的怎样的感官体验(金陵秘事的剧情跌宕起伏)
- 少儿口才表达影响未来一生,50首经典绕口令和孩子玩出聪明大脑(少儿口才表达影响未来一生)
- 玩网游居然让人更友善 很难以让人置信(玩网游居然让人更友善)
- 学好汉语拼音,从娃娃绕口令抓起,平时还是要多练 收藏好(从娃娃绕口令抓起)
- 仙女们的私藏鲜法大PK 鲜香切块牛肉(仙女们的私藏鲜法大PK)
热门推荐
- laravel获取数据(laravel 判断查询数据库返回值的例子)
- python设计一个聊天机器人(手把手教你使用Python创建微信机器人)
- jquery使用data缓存数据
- docker映射端口(Docker初级网络端口映射的配置)
- Docker 部署单机版 Pulsar 和集群架构 Redis(开发神器)的方法(Docker 部署单机版 Pulsar 和集群架构 Redis开发神器的方法)
- 如何修改serv-u主页信息(Serv-U安装使用图文教程)
- mysql8.0.21的安装步骤(mysql8.0.23 msi安装超详细教程)
- iis服务器如何设置多个网站(云服务器怎么设置404页面IIS7)
- Asp.net页面传值乱码
- nginx 重置端口号(详解如何修改nginx的默认端口)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9