简单php文件上传详细说明
1 如果实现小文件的上传(2mb)一下是不需要对php教程.ini 中的配置进行修改的,如果要是大文件的上传就必须进行配置的修改
2 修改php.ini 中的内容有:
post_max_size 指php通过表单post所能接收的最大值
upload_max_filesize 指允许上传文件的最大值
3 上传表单的设置
<form method=”post” action=”” enctype=”multipart/form-data”>
<input name=”upfile” type=”file”>
<input type=”hidden” name=”max_file_size” value=”1024000”>
</form>
解释: 1首先上传时entype属性必须设为multipart/form-data
2 表单中最好加上 hidden隐藏域 name值为max_file_size ,该隐藏域的作用不是真正去限制上传文件大小的,而是为了避免用户误传大文件而陷入无尽的等待中。 真正限制大小的还是刚才php.ini 中的两个修改项。
4 预定义变量$_files
首先他是一个二维的数组,
$_files[‘upfile’][‘name’] 上传文件的文件名
$_files[‘upfile’][‘size’] 上传文件的大小
$_files[‘upfile’][‘tmp_name’] 文件上传时,文件首先被保存为临时文件,改文件是临时文件名
$_files[‘upfile’][‘type’] 上传文件的类型
$_files[‘upfile’][‘error’] 错误代码
注意 $_files[‘upfile’][‘name’] 这里的upfile 是与表单<input name=”upfile” type=”file”> 的name对应,千万别错
5 具体实现
<?
$filename=$_files['upfile']['name'];
$tmp=$_files['upfile']['tmp_name'];
$error=$_files['upfile']['error'];
$path="./images/";
if($error==0){
if(is_uploaded_file($tmp)){
if(move_uploaded_file($tmp,$path.$filename)){
echo "上传成功!";
}else{
echo "<script> alert('文件不合法');history.go(-1);</script>";
}
}else{echo "<script> alert('非法操作!');history.go(-1);</script>";
}
}else{
echo"<script> alert('上传错误,错误类型:".$error."');history.go(-1);</script>";
}
?>
分页的就是根据符合条件的总记录除上每页显示的记录就等页数,原理相当简单了公式为 $total = ceil($toalRecord / $perpageNum);
function outpege($ps教程,$page)
{
// $ps 累计信息数 $page 当前page数 $max 列表的最大数 $min 列表的最小值
$max = ($page >= 5)? $page+5:10;
if($max > $ps)$max =$ps;
$min =($page-5);
if($min<1) $min =1;
if($page>1)$pagelist = "<a href="?page=1">首页</a>";
for($i=$min;$i<=$max;$i++){
$pagelist.= ($i!=$page)? "<a href="?page={$i}">{$i}</a>":"<a href="#">{$page}</a>";
}
$pagelist.= ($page>=$ps)?'':"<a href="?page={$ps}">尾页</a>";
return $pagelist;
}
分页代码二
// 分页, {总记录数,每页显示数,当前页,最多显示多少页,分页url}
function page($toalrecord, $perpagenum, $curpage, $url) {
$total = ceil($toalrecord / $perpagenum);
$pagearr = array_slice(range(1, $total), max(0, $curpage - ~~($perpagenum / 2)), $perpagenum);
if($pagearr[0] != 1) {
array_unshift($pagearr, sprintf("<a href='{$url}%s'><<</a>", $pagearr[0] - 1));
}
if($pagearr[count($pagearr)-1] != $total) {
array_push($pagearr, sprintf("<a href='{$url}%s'>>></a>", $pagearr[count($pagearr)-1] + 1));
}
foreach ( $pagearr as $i => &$v ) {
$v = is_numeric($v) ? "<a href='{$url}{$v}'>{$v}</a>" : $v;
}
return "<a href='{$url}'>首页</a>" . implode('', $pagearr) . "<a href='{$url}" . $total . "'>尾页</a>";
}
调用
page(99/*总记录*/, 9/*每页显示数*/, page/*当前页,从1开始*/, 'http://www.111cn.net/?page='/*url前缀*/);
以前我们的购物车都是点击打开网页,都是web 2.0形式的,本文章提供这款php教程 ajax拖动购物车源码,可以拖动商品放在购物车里面,这样更好的适合用户习惯了。
*/
//download by http://www.111cn.net
/* database config */
$db_host = 'localhost';
$db_user = 'root';
$db_pass = 'dcfan2006';
$db_database = 'test';
$link = mysql教程_connect($db_host,$db_user,$db_pass) or die('unable to establish a db connection');
mysql_select_db($db_database,$link);
mysql_query("set names utf8");
?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.111cn.net/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>php ajax拖动购物车源码</title>
<script type="text/网页特效" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
<script>
var purchased=new array();
var totalprice=0;
$(document).ready(function(){
$('.product').simpletip({
offset:[40,0],
content:'<img src="img/ajax_load.gif" alt="loading" style="margin:10px;" />',
onshow: function(){
var param = this.getparent().find('img').attr('src');
if($.browser.msie && $.browser.version=='6.0')
{
param = this.getparent().find('img').attr('style').match(/src="([^"]+)"/);
param = param[1];
}
this.load('ajax/tips教程.php',{img:param});
}
});
$(".product img").draggable({
containment: 'document',
opacity: 0.6,
revert: 'invalid',
helper: 'clone',
zindex: 100
});
$("div.content.drop-here").droppable({
drop:
function(e, ui)
{
var param = $(ui.draggable).attr('src');
if($.browser.msie && $.browser.version=='6.0')
{
param = $(ui.draggable).attr('style').match(/src="([^"]+)"/);
param = param[1];
}
addlist(param);
}
});
});
function addlist(param)
{
$.ajax({
type: "post",
url: "ajax/addtocart.php",
data: 'img='+encodeuricomponent(param),
datatype: 'json',
beforesend: function(x){$('#ajax-loader').css教程('visibility','visible');},
success: function(msg){
$('#ajax-loader').css('visibility','hidden');
if(parseint(msg.status)!=1)
{
return false;
}
else
{
var check=false;
var cnt = false;
for(var i=0; i<purchased.length;i++)
{
if(purchased[i].id==msg.id)
{
check=true;
cnt=purchased[i].cnt;
break;
}
}
if(!cnt)
$('#item-list').append(msg.txt);
if(!check)
{
purchased.push({id:msg.id,cnt:1,price:msg.price});
}
else
{
if(cnt>=3) return false;
purchased[i].cnt++;
$('#'+msg.id+'_cnt').val(purchased[i].cnt);
}
totalprice+=msg.price;
update_total();
}
$('.tooltip').hide();
}
});
}
function findpos(id)
{
for(var i=0; i<purchased.length;i++)
{
if(purchased[i].id==id)
return i;
}
return false;
}
function remove(id)
{
var i=findpos(id);
totalprice-=purchased[i].price*purchased[i].cnt;
purchased[i].cnt = 0;
$('#table_'+id).remove();
update_total();
}
function change(id)
{
var i=findpos(id);
totalprice+=(parseint($('#'+id+'_cnt').val())-purchased[i].cnt)*purchased[i].price;
purchased[i].cnt=parseint($('#'+id+'_cnt').val());
update_total();
}
function update_total()
{
if(totalprice)
{
$('#total').html('total: $'+totalprice);
$('a.button').css('display','block');
}
else
{
$('#total').html('');
$('a.button').hide();
}
}
</script>
<style>
body,h1,h2,h3,p,td,quote,small,form,input,ul,li,ol,label{
margin:0px;
padding:0px;
font-family:arial, helvetica, sans-serif;
}
body{
color:#555555;
font-size:13px;
background-color:#282828;
}
.clear{
clear:both;
}
#main-container{
width:700px;
margin:20px auto;
}
.container{
margin-bottom:40px;
}
.top-label{
background:url(img/label_bg.png) no-repeat;
display:inline-block;
margin-left:20px;
position:relative;
margin-bottom:-15px;
}
.label-txt{
background:url(img/label_bg.png) no-repeat top right;
display:inline-block;
font-size:10px;
height:36px;
margin-left:10px;
padding:12px 15px 0 5px;
text-transform:uppercase;
}
.content-area{
background:url(img/container_top.png) no-repeat #fcfcfc;
padding:15px 20px 0 20px;
}
.content{
padding:10px;
}
.drag-desired{
background:url(img/drag_desired_label.png) no-repeat top right;
padding:30px;
}
.drop-here{
background:url(img/drop_here_label.png) no-repeat top right;
}
.bottom-container-border{
background:url(img/container_bottom.png) no-repeat;
height:14px;
}
.product{
border:2px solid #f5f5f5;
float:left;
margin:15px;
padding:10px;
}
.product img{
cursor:move;
}
p.descr{
padding:5px 0;
}
small{
display:block;
margin-top:4px;
}
.tooltip{
position: absolute;
top: 0;
left: 0;
z-index: 3;
display: none;
background-color:#666666;
border:1px solid #666666;
color:#fcfcfc;
padding:10px;
-moz-border-radius:12px;
-khtml-border-radius: 12px;
-webkit-border-radius: 12px;
border-radius:12px;
}
#cart-icon{
width:128px;
float:left;
position:relative;
}
#ajax-loader{
position:absolute;
top:0px;
left:0px;
visibility:hidden;
}
#item-list{
float:left;
width:490px;
margin-left:20px;
padding-top:15px;
}
a.remove,a.remove:visited{
color:red;
font-size:10px;
text-transform:uppercase;
}
#total{
clear:both;
float:right;
font-size:10px;
font-weight:bold;
padding:10px 12px;
text-transform:uppercase;
}
#item-list table{
background-color:#f7f7f7;
border:1px solid #efefef;
margin-top:5px;
padding:4px;
}
a.button,a.button:visited{
display:none;
height:29px;
width:136px;
padding-top:15px;
margin:0 auto;
overflow:hidden;
color:white;
font-size:12px;
font-weight:bold;
text-align:center;
text-transform:uppercase;
background:url(img/button.png) no-repeat center top;
}
a.button:hover{
background-position:bottom;
text-decoration:none;
}
a, a:visited {
color:#00bbff;
text-decoration:none;
outline:none;
}
a:hover{
text-decoration:underline;
}
h1{
font-size:28px;
font-weight:bold;
font-family:"trebuchet ms",arial, helvetica, sans-serif;
}
h2{
font-weight:normal;
font-size:20px;
color:#666666;
text-indent:30px;
margin:20px 0;
}
.tutorialzine h1{
color:white;
margin-bottom:10px;
font-size:48px;
}
.tutorialzine h3{
color:#f5f5f5;
font-size:10px;
font-weight:bold;
margin-bottom:30px;
text-transform:uppercase;
}
.tutorial-info{
color:white;
text-align:center;
padding:10px;
margin-top:-20px;
}
</style>
<!--[if lt ie 7]>
<style type="text/css">
.pngfix { behavior: url(pngfix/iepngfix.htc);}
.tooltip{width:200px;};
</style>
<![endif]-->
</head>
<body>
<div id="main-container">
<div class="tutorialzine">
<h1>shopping cart</h1>
<h3>the best products at the best prices</h3>
</div>
<div class="container">
<span class="top-label">
<span class="label-txt">products</span>
</span>
<div class="content-area">
<div class="content drag-desired">
<?php
$result = mysql_query("select * from internet_shop");
while($row=mysql_fetch_assoc($result))
{
echo '<div class="product"><img src="img/products/'.$row['img'].'" alt="'.htmlspecialchars($row['name']).'" width="128" height="128" class="pngfix" /></div>';
}
?>
<div class="clear"></div>
</div>
</div>
<div class="bottom-container-border">
</div>
</div>
<div class="container">
<span class="top-label">
<span class="label-txt">shopping cart</span>
</span>
<div class="content-area">
<div class="content drop-here">
<div id="cart-icon">
<img src="img/shoppingcart_128x128.png" alt="shopping cart" class="pngfix" width="128" height="128" />
<img src="img/ajax_load_2.gif" alt="loading.." id="ajax-loader" width="16" height="16" />
</div>
<form name="checkoutform" method="post" action="order.php">
<div id="item-list">
</div>
</form>
<div class="clear"></div>
<div id="total"></div>
<div class="clear"></div>
<a href="" onclick="document.forms.checkoutform.submit(); return false;" class="button">checkout</a>
</div>
</div>
<div class="bottom-container-border">
</div>
</div>
</div>
</body>
</html>
tips.php
<?php
if(!$_post['img']) die("there is no such product!");
$img=mysql_real_escape_string(end(explode('/',$_post['img'])));
$row=mysql_fetch_assoc(mysql_query("select * from internet_shop where img='".$img."'"));
if(!$row) die("there is no such product!");
echo '<strong>'.$row['name'].'</strong>
<p class="descr">'.$row['description'].'</p>
<strong>price: $'.$row['price'].'</strong>
<small>drag it to your shopping cart to purchase it</small>';
?>
addtocard.php加入购物车
<?php
define('include_check',1);
require "../connect.php";
if(!$_post['img']) die("there is no such product!");
$img=mysql_real_escape_string(end(explode('/',$_post['img'])));
$row=mysql_fetch_assoc(mysql_query("select * from internet_shop where img='".$img."'"));
echo '{status:1,id:'.$row['id'].',price:'.$row['price'].',txt:'
<table width="100%" id="table_'.$row['id'].'">
<tr>
<td width="60%">'.$row['name'].'</td>
<td width="10%">$'.$row['price'].'</td>
<td width="15%"><select name="'.$row['id'].'_cnt" id="'.$row['id'].'_cnt" onchange="change('.$row['id'].');">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option></slect>
</td>
<td width="15%"><a href="#" onclick="remove('.$row['id'].');return false;" class="remove">remove</a></td>
</tr>
</table>'}';
?>
查看购物车页面
<div id="main-container">
<div class="container">
<span class="top-label">
<span class="label-txt">your order</span>
</span>
<div class="content-area">
<div class="content">
<?php
$cnt = array();
$products = array();
foreach($_post as $key=>$value)
{
$key=(int)str_replace('_cnt','',$key);
$products[]=$key;
$cnt[$key]=$value;
}
$result = mysql_query("select * from internet_shop where id in(".join($products,',').")");
if(!mysql_num_rows($result))
{
echo '<h1>there was an error with your order!</h1>';
}
else
{
echo '<h1>you ordered:</h1>';
while($row=mysql_fetch_assoc($result))
{
echo '<h2>'.$cnt[$row['id']].' x '.$row['name'].'</h2>';
$total+=$cnt[$row['id']]*$row['price'];
}
echo '<h1>total: $'.$total.'</h1>';
}
?>
<div class="clear"></div>
</div>
</div>
<div class="bottom-container-border">
</div>
</div>
</div>
源码下载地址。
http://down.111cn.net/down/code/php/qitayuanma/2010/1102/21586.html
<!--
t.php代码
代码如下 | 复制代码 |
<? |
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.111cn.net/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title> 用户注册检测用户名是否存在ajax + php代码</title>
<script>
// 用户注册检测用户名是否存在ajax + php代码
function createxmlhttprequest(){//创建xmlhttprequest对象
if(window.activexobject){//ie
try {
return new activexobject("microsoft.xmlhttp");
} catch(e){
return;
}
}else if(window.xmlhttprequest){//mozilla,firefox
try {
return new xmlhttprequest();
} catch(e){
return;
}
}
}
function getrenews(value){//主调函数
var xmlhttp=createxmlhttprequest();
var url = "t.php?action=check&title="+value+"&mt="+math.random(300000);
if (value==""){
return false ;
}
if (xmlhttp){
callback = getreadystatehandler(xmlhttp);
xmlhttp.onreadystatechange = callback;
xmlhttp.open("get", url,true);
xmlhttp.send(null);
}
}
//返回0代表用户名可用,否则提示己被注册。
function getreadystatehandler(xmlhttp){//服务器返回后处理函数
return function (){
if(xmlhttp.readystate == 4){
if(xmlhttp.status == 200){
if (xmlhttp.responsetext==1){
document.getelementbyid("checkid").innerhtml="<font color='red'>对不起,你输入的用户名己被注册!</font>";
}else{
document.getelementbyid("checkid").innerhtml="可以注册";
}
}
}
}
}
</script>
</head>
<body>
给input框增加onblur事件,当用户输入完用户名就检测用户名,并给出提示。
输入用户名<input name="title" type="text" id="title" size="40" onblur="getrenews(this.value);"><span id="checkid"></span>
</body>
</html>
定义和用法
mkdir() 函数创建目录。
若成功,则返回 true,否则返回 false。
语法
mkdir(path,mode,recursive,context)参数 描述
path 必需。规定要创建的目录的名称。
mode 必需。规定权限。默认是 0777。
recursive 必需。规定是否设置递归模式。
context 必需。规定文件句柄的环境。context 是可修改流的行为的一套选项。
代码如下 | 复制代码 |
<?php mkdir("testing"); ?> |
删除目录
定义和用法
rmdir() 函数删除空的目录。
若成功,则该函数返回 true。若失败,则返回 false。
语法
rmdir(dir,context)参数 描述
dir 必需。规定要删除的目录。
context 必需。规定文件句柄的环境。context 是可修改流的行为的一套选项。
说明
尝试删除 dir 所指定的目录。 该目录必须是空的,而且要有相应的权限。
代码如下 | 复制代码 |
<?php $path = "images"; if(!rmdir($path)) { echo ("could not remove $path"); } ?> |
代码如下 | 复制代码 |
<?php $dirfile="文件夹"; $dirfile=iconv("utf-8","gb2312",$dirfile);//转码,否则会看到windows里面是乱码,但程序能正常操作,读取目录时反过来才看到目录的真正名字。 if(!file_exists($dirfile))//用于判断目录或文件是否存在 mkdir($dirfile);//创建目录 rmdir($dirfile);//删除目录,必须为空目录,否则要先删除里面的所有文件,后面有删除方法 echo "<br>"; ?> |
文件创建、删除、读取、转数组
代码如下 | 复制代码 |
<?php $filename="文件.txt"; $filename=iconv("utf-8","gb2312",$filename);//转码,否则会看到windows里面是乱码 file_put_contents($filename,'');//自动创建空文件,如果已存在则删除再创建,具体可以增加file_exists判断,比fopen、fputs、fclose等函数简单。 unlink($filename);//注意文件名都是gb2312编码 file_put_contents($filename,"大家好!rn大家好啊!",file_append); //看到没,写入两行, 第三个参数可选,表示是以增加方式写入,否则清空内容再写入 echo file_get_contents($filename);//忽略换行读取整个文件 echo "<br>"; $arr=file($filename);//文件按行读到数组里 print_r($arr); echo "<br>"; readfile($filename);//文件直接输出到屏幕 echo "<br>"; ?> |
获取url信息、客户端ip地址
代码如下 | 复制代码 |
<?php |
获取文件修改时间戳、遍历目录文件
代码如下 | 复制代码 |
<?php $filename="文件.txt"; $filename=iconv("utf-8","gb2312",$filename); $passtime=time()-filectime($filename);//创建时间差,不准,一般不用 echo $passtime; echo "<br>"; $passtime=time()-filemtime($filename);//修改时间差,用于更新判断,缓冲等判断 echo $passtime; echo "<br>"; $dir="../"; print_r($arr=scandir($dir));//获得主目录的所有文件和文件夹名称 foreach($arr as $value){ if (!is_dir($dir.$value)) //是否目录,目录还包括"."、".."两个数组,通过判断可以知道是文件还是目录,以及是什么类型的后序名 echo iconv("gb2312","utf-8",$value)."<br>rn"; } ?> |
详细实例
代码如下 | 复制代码 |
$test="bb|cccs|aaa"; $array =explode('|',$test); |
相关文章
- 下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
Jupyter Notebook读取csv文件出现的问题及解决
这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06- 有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
- C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
- 这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
- 这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
- 这篇文章主要为大家详细介绍了js实现上传图片及时预览的相关资料,具有一定的参考价值,感兴趣的朋友可以参考一下...2016-05-09
php无刷新利用iframe实现页面无刷新上传文件(1/2)
利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25- 本文章来人大家介绍一个php文件上传类的使用方法,期望此实例对各位php入门者会有不小帮助哦。 简介 Class.upload.php是用于管理上传文件的php文件上传类, 它可以帮...2016-11-25
- 要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
- 又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
- 本文实例讲述了jQuery实现文件上传进度条效果的代码。分享给大家供大家参考。具体如下: 运行效果截图如下:具体代码如下:<!DOCTYPE html><html><head><meta charset="utf-8"><title>upload</title><link rel="stylesheet...2015-11-24
- 今天小编在这里就来给photoshop的这一款软件的使用者们来说下AI源文件转photoshop图像变模糊问题的解决教程,各位想知道具体解决方法的使用者们,那么下面就快来跟着小编...2016-09-14
- 这篇文章主要介绍了C++万能库头文件在vs中的安装步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
- 步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
- 这篇文章主要介绍了C#路径,文件,目录及IO常见操作,较为详细的分析并汇总了C#关于路径,文件,目录及IO常见操作,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
- 这篇文章主要介绍了C#使用StreamWriter写入文件的方法,涉及C#中StreamWriter类操作文件的相关技巧,需要的朋友可以参考下...2020-06-25
ant design中upload组件上传大文件,显示进度条进度的实例
这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29