91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在PHP中使用HTML5 FileApi實現Ajax上傳文件功能

發布時間:2021-05-27 16:44:21 來源:億速云 閱讀:160 作者:Leah 欄目:開發技術

怎么在PHP中使用HTML5 FileApi實現Ajax上傳文件功能?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

FileApi是HTML5的一個新特性,有了這個新特性,js就可以讀取本地的文件了,然后實現真正的Ajax上傳文件了,而不是iframe方法,下面會介紹api的使用,以及實現Ajax上傳文件:

FileApi使用

定義上傳控件:

<input type="file" name="pic" onchange="selfile();" />

當上傳文件后,就會觸發selfile()函數,selfile()代碼:

var files = document.getElementsByTagName('input')[0].files;//fileList對象,文件列表對象,表示有多個文件被上傳,如果只有1個文件上傳也是fileList對象
var files = document.getElementsByTagName('input')[0].files[0];//file對象,表示單個上傳文件

Ajax上傳文件

項目結構圖:

怎么在PHP中使用HTML5 FileApi實現Ajax上傳文件功能

11-fileApi.html文件:

頁面中主要有一個上傳文件按鈕,如果有文件上傳,onchange事件被響應,selfile函數調用,然后js讀取上傳文件、把文件名和大小顯示在頁面中、創建FormData對象并添加數據、ajax上傳文件、預覽上傳文件效果。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>fileApi實現Ajax上傳文件</title>
  <link rel="stylesheet" href="">
<script>
  function selfile(){
    var file = document.getElementsByTagName('input')[0].files[0];//js讀取上傳文件
    var con = '';
    con += '文件名:' + file.name + '<br/>';
    con += '大小:' + file.size;
    document.getElementById('debug').innerHTML = con;//把文件名和大小顯示在頁面中
    var fd = new FormData();//創建FormData對象
    fd.append('pic',file);//添加文件數據
    //ajax上傳文件
    var xhr = new XMLHttpRequest();
    xhr.open('POST','11-fileApi.php',true);
    xhr.send(fd);
    var img = document.createElement('img');//動態創建img標簽
    img.src = window.URL.createObjectURL(file);//把二進制對象直接讀出瀏覽器顯示的資源
    document.getElementsByTagName('body')[0].appendChild(img);//把img標簽動態添加到dom樹中
  }
</script>
</head>
<body>
  <input type="file" name="pic" onchange="selfile();" />
  <div id="debug"></div>
</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中使用HTML5 FileApi實現Ajax上傳文件功能問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

靖西县| 合山市| 德庆县| 奉贤区| 涟源市| 徐闻县| 苍梧县| 天门市| 万年县| 怀仁县| 马关县| 建瓯市| 宁晋县| 屏边| 邵东县| 江达县| 大埔区| 莱西市| 施甸县| 峨边| 庆元县| 兴业县| 荃湾区| 延寿县| 姜堰市| 五常市| 周口市| 临安市| 遵化市| 永靖县| 波密县| 岳阳县| 旌德县| 阳曲县| 乃东县| 政和县| 都安| 正安县| 台州市| 甘德县| 枝江市|