激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - PHP教程 - php 使用html5 XHR2實現(xiàn)上傳文件與進度顯示功能示例

php 使用html5 XHR2實現(xiàn)上傳文件與進度顯示功能示例

2021-09-30 14:41懷素真 PHP教程

這篇文章主要介紹了php 使用html5 XHR2實現(xiàn)上傳文件與進度顯示功能,結(jié)合實例形式分析了php 使用html5上傳文件過程中progress事件返回進度信息相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了php 使用html5 XHR2實現(xiàn)上傳文件與進度顯示功能。分享給大家供大家參考,具體如下:

思路:只要我們知道上傳文件的總大小,還有上傳過程中上傳文件的大小,那么就可以實現(xiàn)進度顯示了。

在html5中,XMLHttpRequest對象,傳送數(shù)據(jù)的時候,progress事件用來返回進度信息。

它分成上傳和下載兩種情況

1.下載的progress事件屬于XMLHttpRequest對象
2.上傳的progress事件屬于XMLHttpRequest.upload對象。

與progress事件相關(guān)的,還有其他五個事件:

1.load事件:傳輸成功完成。
2.abort事件:傳輸被用戶取消。
3.error事件:傳輸中出現(xiàn)錯誤。
4.loadstart事件:傳輸開始。
5.loadEnd事件:傳輸結(jié)束,但是不知道成功還是失敗。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<!DOCTYPE HTML>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title></title>
</head>
<body>
  <form method="post" id="myForm">
    <input type="file" name="file" id="upfile" />
    <input type="submit" name="submit" value="提交" />
  </form>
  <div id="upStatus"></div>
</body>
<script type="text/javascript">
  var myForm = document.getElementById("myForm");
  var upfile = document.getElementById("upfile");
 
  myForm.onsubmit = function() {
    //我們創(chuàng)建一個FormData對象
    var fd = new FormData();
    var file = upfile.files[0];
    //把文件添加到FormData對象中
    fd.append("file", file);
 
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
      if (xhr.readyState == 4) {
        alert(this.responseText);
      }
    };
    xhr.open("post", "upfile.php", true);
 
    //監(jiān)聽上傳事件
    xhr.upload.onprogress = function(ev) {
      //如果長度是可計算的
      if(ev.lengthComputable) {
        var percent = Math.round((ev.loaded / ev.total) * 100);
        document.getElementById("upStatus").innerHTML = percent + "%";
      }
    };
 
    //發(fā)送FormData對象
    xhr.send(fd);
    return false;
  };
</script>
</html>

upfile.php代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
<?php
$uploadDir = './upload/';
if(!file_exists($uploadDir)) {
  @mkdir($uploadDir, 0777, true);
}
$uploadFile = $uploadDir . basename($_FILES['file']['name']);
if(move_uploaded_file($_FILES['file']['tmp_name'], $uploadFile)) {
  echo "OK";
} else {
  echo "NO";
}

如果上傳過程中PHP出現(xiàn)如下信息:

Warning: POST Content-Length of 625523488 bytes exceeds the limit of 8388608 bytes in Unknown on line 0

說明文件大小超出了PHP設(shè)置限制,可以設(shè)置php.ini

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
;腳本解析輸入數(shù)據(jù)(類似 POST 和 GET)允許的最大時間,單位是秒。
 
;它從接收所有數(shù)據(jù)到開始執(zhí)行腳本進行測量的。
max_input_time = 60
 
;允許客戶端單個POST請求發(fā)送的最大數(shù)據(jù)
post_max_size = 64M
 
;是否開啟文件上傳功能
file_uploads = On
 
;文件上傳的臨時存放目錄(如果不指定,使用系統(tǒng)默認的臨時目錄)
;upload_tmp_dir =
 
;允許單個請求上傳的最大文件大小
upload_max_filesize = 64M
 
;允許單個POST請求同時上傳的最大文件數(shù)量
max_file_uploads = 20

希望本文所述對大家PHP程序設(shè)計有所幫助。

原文鏈接:https://www.cnblogs.com/jkko123/p/6294582.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 美国av片在线观看 | 日本精品久久久久久草草 | 亚洲一区二区在线 | 欧美aⅴ视频 | 中文字幕在线观看网址 | 最新中文字幕第一页视频 | 日韩欧美激情视频 | 午夜视频在线免费观看 | 成人爱爱电影 | 国产成人高清成人av片在线看 | 成人一级黄色片 | 天天草夜夜 | 中文字幕在线免费看 | 日韩在线播放中文字幕 | 中文字幕免费看 | 蜜桃网站在线 | 日本高清无遮挡 | 黄色一级片免费在线观看 | 一级电影免费看 | 精品亚洲视频在线 | 男女污视频在线观看 | 最新av网址在线观看 | 欧美日韩一区,二区,三区,久久精品 | 一级毛片免费高清 | 2019天天干夜夜操 | 一区二区三区国产好的精 | 国产亚洲精品久久久久久久久久 | xxxx18韩国护士hd老师 | 一级做人爱c黑人影片 | 欧美成人午夜一区二区三区 | h色在线观看 | 夜间福利视频 | 欧美一级色片 | 毛片免费在线播放 | 久久亚洲综合色 | 国产精品美女久久久久久网站 | 在线香蕉视频 | 国产在线地址 | 久久精品无码一区二区三区 | 一区二区三区欧洲 | 国产欧美在线一区二区三区 |