一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

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

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

php 使用html5 XHR2實現上傳文件與進度顯示功能示例

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

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

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

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

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

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

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

與progress事件相關的,還有其他五個事件:

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

?
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() {
    //我們創建一個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);
 
    //監聽上傳事件
    xhr.upload.onprogress = function(ev) {
      //如果長度是可計算的
      if(ev.lengthComputable) {
        var percent = Math.round((ev.loaded / ev.total) * 100);
        document.getElementById("upStatus").innerHTML = percent + "%";
      }
    };
 
    //發送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出現如下信息:

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

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

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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91高清在线视频 | 免费观看国产精品 | 韩国三级2020| 四虎影院新地址 | 国产美女亚洲精品久久久综合 | 久久精品国产在热亚洲完整版 | 国产嘿咻 | h卡通第一页| 欧美免赞性视频 | 韩国久久 | 亚洲国产精品嫩草影院久久 | 无码天堂亚洲国产AV久久 | 久久久亚洲国产精品主播 | www四虎影视| 日本老妇和子乱视频 | 免费一级欧美片在线观看 | 操操小说 | 干美女视频| 国产精品久久久久久久人人看 | 青青成人福利国产在线视频 | 男人女人日皮视频 | tobu8中国在线观看免费视频 | 亚洲国产AV一区二区三区四区 | 日日干天天爽 | 四虎最新紧急更新地址 | 日本人泡妞xxxxxx69 | 秋霞黄色网| 91传媒制片厂果冻有限公司 | 女明星放荡高h日常生活 | 国产清纯白嫩大学生正在播放 | 日韩欧美一区二区在线观看 | 四虎精品成人免费观看 | 女女性恋爱视频入口 | 蜜柚精彩在线观看 | 花核调教 | 91入口免费网站大全 | 韩国三级理韩国三级理人伦 | 天天夜夜啦啦啦 | 高清国产精品久久 | 色综七七久久成人影 | 无码天堂亚洲国产AV久久 |