亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

php+ajax實現(xiàn)文件切割上傳功能示例

 更新時間:2020年03月03日 09:48:10   作者:懷素真  
這篇文章主要介紹了php+ajax實現(xiàn)文件切割上傳功能,結合實例形式分析了PHP結合HTML5 File對象的slice函數(shù)進行文件切割與ajax無刷新上傳相關操作技巧,需要的朋友可以參考下

本文實例講述了php+ajax實現(xiàn)文件切割上傳功能。分享給大家供大家參考,具體如下:

html5中的File對象繼承Blob二進制對象,Blob提供了一個slice函數(shù),可以用來切割文件數(shù)據(jù)。

<!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() {
    //獲取文件對象
    var file = upfile.files[0];
    //獲取文件大小
    var fileSize = file.size;
    //一次截取的大小(字節(jié))
    var CutSize = 1024 * 1024 * 10;
    //開始截取位置
    var CutStart = 0;
    //結束截取位置
    var CutEnd = CutStart + CutSize;
    //截取的臨時文件
    var tmpfile = new Blob();

    while(CutStart < fileSize) {
      tmpfile = file.slice(CutStart, CutEnd);

      //我們創(chuàng)建一個FormData對象
      var fd = new FormData();
      //把文件添加到FormData對象中
      fd.append("file", tmpfile);

      var xhr = new XMLHttpRequest();
      //這里使用同步
      xhr.open("post", "upfile.php", false);

      //上傳進度
      console.log(Math.round( (CutStart + tmpfile.size) / fileSize * 100) + "%");

      //發(fā)送FormData對象
      xhr.send(fd);
      //重新設置截取文件位置
      CutStart = CutEnd;
      CutEnd = CutStart + CutSize;
    }
    return false;
  };
</script>
</html>

upfile.php代碼如下:

<?php
$uploadDir = './upload/';
if(!file_exists($uploadDir)) {
  @mkdir($uploadDir, 0777, true);
}
$uploadFile = $uploadDir . basename($_FILES['file']['name']);

if(!file_exists($uploadFile)) {
  //如果文件不存在
  move_uploaded_file($_FILES['file']['tmp_name'], $uploadFile);
} else {
  //如果文件已存在,追加數(shù)據(jù)
  file_put_contents($uploadFile, file_get_contents($_FILES['file']['tmp_name']), FILE_APPEND);
}

更多關于PHP相關內容可查看本站專題:《PHP+ajax技巧與應用小結》、《PHP網絡編程技巧總結》、《php字符串(string)用法總結》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

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

相關文章

  • PHP發(fā)送短信代碼分享

    PHP發(fā)送短信代碼分享

    最近要用php發(fā)送和接收短信,用戶訂單要用短信通知一類的功能,網上看了好多短信平臺感覺都不靠譜。也測試了很多代碼,下面把幾款好用的分享給大家
    2015-08-08
  • linux環(huán)境apache多端口配置虛擬主機的方法深入介紹

    linux環(huán)境apache多端口配置虛擬主機的方法深入介紹

    本篇文章是對linux環(huán)境apache多端口配置虛擬主機的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • php以post形式發(fā)送xml的方法

    php以post形式發(fā)送xml的方法

    這篇文章主要介紹了php以post形式發(fā)送xml的方法,包括了curl與fsockopen兩種方法,具有不錯的參考價值,需要的朋友可以參考下
    2014-11-11
  • 淺析PHP類的反射來實現(xiàn)依賴注入過程

    淺析PHP類的反射來實現(xiàn)依賴注入過程

    這篇文章主要介紹了PHP類的反射來實現(xiàn)依賴注入過程以及相關知識點分享,對此有興趣的朋友跟著小編學習下吧。
    2018-02-02
  • PHP合并數(shù)組的2種方法小結

    PHP合并數(shù)組的2種方法小結

    大家都知道PHP中兩個數(shù)組合并可以使用+或者array_merge,但之間還是有區(qū)別的,而且這些區(qū)別如果了解不清楚項目中會要命的!這篇文章給加總結介紹了PHP合并數(shù)組的2種方法,有需要的朋友們可以參考借鑒,下面來一起學習學習吧。
    2016-11-11
  • 解析WordPress中控制用戶登陸和判斷用戶登陸的PHP函數(shù)

    解析WordPress中控制用戶登陸和判斷用戶登陸的PHP函數(shù)

    這篇文章主要介紹了WordPress中控制用戶登陸和判斷用戶登陸的PHP函數(shù),WordPress現(xiàn)在多用戶功能已推出了一段時間,針對多用戶需求的開發(fā)也日益增多,需要的朋友可以參考下
    2016-03-03
  • php后臺程序與Javascript的兩種交互方式

    php后臺程序與Javascript的兩種交互方式

    在網頁制作過程中怎樣在不刷新頁面的情況下使前臺頁面和后臺CGI頁面保持交互一直是個問題。這里介紹兩個方法。
    2009-10-10
  • 如何解決php domdocument找不到的問題

    如何解決php domdocument找不到的問題

    在本篇文章里小編給大家整理的是一篇關于php domdocument找不到的解決辦法,有需要的朋友們可以跟著學習參考下。
    2021-07-07
  • PhpDocumentor 2安裝以及生成API文檔的方法

    PhpDocumentor 2安裝以及生成API文檔的方法

    phpDocumentor 2是一個可以分析php源代碼和注釋塊并生成文檔的程序?;趐hpdocumentor 1和javadoc啟發(fā)而來,它持續(xù)創(chuàng)新的使用了一些新技術和支持php的新特性。
    2014-05-05
  • PHP中set_include_path()函數(shù)相關用法分析

    PHP中set_include_path()函數(shù)相關用法分析

    這篇文章主要介紹了PHP中set_include_path()函數(shù)相關用法,結合實例形式分析了php針對文件路徑設置的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-07-07

最新評論