php上传大文件教程(PHP实现带进度条的Ajax文件上传功能示例)
类别:编程学习 浏览量:1064
时间:2022-01-25 00:12:10 php上传大文件教程
PHP实现带进度条的Ajax文件上传功能示例本文实例讲述了php实现带进度条的ajax文件上传功能。分享给大家供大家参考,具体如下:
之前分享了一篇关于 php使用fileapi实现ajax上传文件 的文章,里面的ajax文件上传是不带进度条的,今天分享一篇关于带进度条的ajax文件上传文章。
效果图:
项目结构图:
12-progress-upload.html文件:
页面中主要有一个上传文件控件,有文件被选择时响应selfile()方法,接着利用js读取上传文件、创建formdata对象和xhr对象,利用xhr2的新标准,写一个监听上传过程函数,请求11-fileapi.php文件。
|
<!doctype html> <html> <head> <meta charset= "utf-8" > <meta http-equiv= "x-ua-compatible" content= "ie=edge" > <title>html5带进度条的上传功能</title> <link rel= "stylesheet" href= "" > <script> function selfile(){ //js读取上传文件 var file = document.getelementsbytagname( 'input' )[0].files[0]; //创建formdata对象 var fd = new formdata(); fd.append( 'pic' ,file); //ajax上传文件 var xhr = new xmlhttprequest(); xhr.open( 'post' , '11-fileapi.php' ,true); //利用xhr2的新标准,为上传过程,写一个监听函数 xhr.upload.onprogress = function (ev){ if (ev.lengthcomputable){ //文件长度可计算 var percent = 100*ev.loaded/ev.total; //计算上传的百分比 document.getelementbyid( 'bar' ).style.width = percent + '%' ; //更改上传进度 document.getelementbyid( 'bar' ).innerhtml = parseint(percent)+ '%' ; //显示上传进度 } } 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>html5带进度条的上传功能</h1> <li id= "progress" > <li id= "bar" ></li> </li> <input type= "file" name= "pic" onchange= "selfile();" /> </body> </html> |
11-fileapi.php文件:
首先判断是否有文件上传,然后判断文件上传是否成功,最后移动文件至当前目录下的upload目录下,文件名不变。
|
<?php /** * fileapi实现ajax上传文件 * @author webbc */ if ( empty ( $_files )){ exit ( 'no file' ); } if ( $_files [ 'pic' ][ 'error' ] !== 0){ exit ( 'fail' ); } move_uploaded_file( $_files [ 'pic' ][ 'tmp_name' ], './upload/' . $_files [ 'pic' ][ 'name' ]); ?> |
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/baochao95/article/details/52806799
您可能感兴趣
- php 精度误差调整(php精度计算的问题解析)
- php中trim函数(PHP中ltrim函数的用法与实例讲解)
- php根据名称规则判断文件是否存在(PHP中上传文件打印错误错误类型分析)
- php中抽象类和接口的区别(PHP抽象类和接口用法实例详解)
- phpstudy最佳配置(phpstudy如何开启openSSL?)
- python与php(解决Python3 被PHP程序调用执行返回乱码的问题)
- thinkphp前后端配合(thinkPHP+LayUI 流加载实现功能)
- php中如何打开文件读文件(PHP通过文件保存和更新信息的方法分析)
- phpstudy安装教程详解学习(phpstudy下载安装简明图文教程)
- thinkphp导入excel(Yii框架使用PHPExcel导出Excel文件的方法分析改进版)
- phpob函数使用方法(php中isset与empty函数的困惑与用法分析)
- php生成安全随机数(PHP随机数函数rand与mt_rand的讲解)
- phpmysql怎么搭建(PHP使用PDO、mysqli扩展实现与数据库交互操作详解)
- phpweb添加自定义模板(php静态化页面 htaccess写法详解htaccess怎么写?)
- php安全性问题怎么解决(实例分析10个PHP常见安全问题)
- php网站经典案例(PHP生成短网址的思路以及实现方法的详解)
- 大众推出了第五代高尔夫GT(大众推出了第五代高尔夫GT)
- 换代在即,现在是抄底 7.5代 高尔夫的最佳时机吗(换代在即现在是抄底)
- 2020年大众7.5代高尔夫R终结特别版 最后的呐喊(2020年大众7.5代高尔夫R终结特别版)
- 七年前的这部剧有毒,全剧只有女主红到发紫,男主至今无人认识(七年前的这部剧有毒)
- 宋轶除了演过于曼丽,原来还演过一个青楼女子(宋轶除了演过于曼丽)
- 赵丽颖第一部当女主的戏,主角配角个个都是实力演员(赵丽颖第一部当女主的戏)
热门推荐
- Python实现模拟点击(用python实现刷点击率的示例代码)
- ftp被动模式改成主动模式(如何设置FTP的主动模式和被动模式 FileZilla主动和被动模式设置方法)
- react源码教程(详解React 代码共享最佳实践方式)
- laravel框架怎么定时任务(laravel Model 执行事务的实现)
- python关于微信的模块(python基于itchat模块实现微信防撤回)
- div内容水平垂直居中的方法(不定宽高的文字在div中垂直居中实现方法)
- mysql的count知识(MySQL中MTR的概念)
- laravel语法有哪些(对laravel in 查询的使用方法详解)
- vue按需引入elementui组件(vue ElementUI实现异步加载树)
- php实现redis消息队列(redis+php实现微博三微博列表功能详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9