佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > PHP使用HTML5 FileApi實(shí)現(xiàn)Ajax上傳文件功能示例

PHP使用HTML5 FileApi實(shí)現(xiàn)Ajax上傳文件功能示例

熱門(mén)標(biāo)簽:Mysql連接數(shù)設(shè)置 團(tuán)購(gòu)網(wǎng)站 科大訊飛語(yǔ)音識(shí)別系統(tǒng) 阿里云 服務(wù)器配置 電子圍欄 Linux服務(wù)器 銀行業(yè)務(wù)

本文實(shí)例講述了PHP使用HTML5 FileApi實(shí)現(xiàn)Ajax上傳文件功能。分享給大家供大家參考,具體如下:

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

FileApi使用

定義上傳控件:

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

當(dāng)上傳文件后,就會(huì)觸發(fā)selfile()函數(shù),selfile()代碼:

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

Ajax上傳文件

效果圖:

項(xiàng)目結(jié)構(gòu)圖:

11-fileApi.html文件:

頁(yè)面中主要有一個(gè)上傳文件按鈕,如果有文件上傳,onchange事件被響應(yīng),selfile函數(shù)調(diào)用,然后js讀取上傳文件、把文件名和大小顯示在頁(yè)面中、創(chuàng)建FormData對(duì)象并添加數(shù)據(jù)、ajax上傳文件、預(yù)覽上傳文件效果。

!DOCTYPE html>
html>
head>
  meta charset="utf-8">
  meta http-equiv="X-UA-Compatible" content="IE=edge">
  title>fileApi實(shí)現(xiàn)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;//把文件名和大小顯示在頁(yè)面中
    var fd = new FormData();//創(chuàng)建FormData對(duì)象
    fd.append('pic',file);//添加文件數(shù)據(jù)
    //ajax上傳文件
    var xhr = new XMLHttpRequest();
    xhr.open('POST','11-fileApi.php',true);
    xhr.send(fd);
    var img = document.createElement('img');//動(dòng)態(tài)創(chuàng)建img標(biāo)簽
    img.src = window.URL.createObjectURL(file);//把二進(jìn)制對(duì)象直接讀出瀏覽器顯示的資源
    document.getElementsByTagName('body')[0].appendChild(img);//把img標(biāo)簽動(dòng)態(tài)添加到dom樹(shù)中
  }
/script>
/head>
body>
  input type="file" name="pic" onchange="selfile();" />
  div id="debug">/div>
/body>
/html>

11-fileApi.php文件:

首先判斷是否有文件上傳,然后判斷上傳是否成功,最后把文件復(fù)制到當(dāng)前目錄下的upload目錄下,文件名保持不變。

?php
/**
 * fileApi實(shí)現(xiàn)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']);
?>

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《php文件操作總結(jié)》、《PHP目錄操作技巧匯總》、《PHP常用遍歷算法與技巧總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》及《PHP網(wǎng)絡(luò)編程技巧總結(jié)》

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

您可能感興趣的文章:
  • php 下 html5 XHR2 + FormData + File API 上傳文件操作實(shí)例分析
  • php+html5實(shí)現(xiàn)無(wú)刷新圖片上傳教程
  • 使用PHP和HTML5 FormData實(shí)現(xiàn)無(wú)刷新文件上傳教程
  • php+html5+ajax實(shí)現(xiàn)上傳圖片的方法
  • php+html5使用FormData對(duì)象提交表單及上傳圖片的方法
  • php 使用html5實(shí)現(xiàn)多文件上傳實(shí)例
  • PHP 文件上傳進(jìn)度條的兩種實(shí)現(xiàn)方法的代碼
  • php實(shí)現(xiàn)簡(jiǎn)單的上傳進(jìn)度條
  • php上傳文件并顯示上傳進(jìn)度的方法
  • PHP+Ajax無(wú)刷新帶進(jìn)度條圖片上傳示例
  • PHP+Ajax實(shí)現(xiàn)上傳文件進(jìn)度條動(dòng)態(tài)顯示進(jìn)度功能
  • php 使用html5 XHR2實(shí)現(xiàn)上傳文件與進(jìn)度顯示功能示例

標(biāo)簽:江蘇 萍鄉(xiāng) 廣元 棗莊 衡水 蚌埠 衢州 大理

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP使用HTML5 FileApi實(shí)現(xiàn)Ajax上傳文件功能示例》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢(xún)

    • 400-1100-266
    嘉定区| 于都县| 汶上县| 宝清县| 大余县| 滁州市| 志丹县| 朝阳区| 巴马| 南投市| 永年县| 永胜县| 额尔古纳市| 临城县| 黔西县| 富裕县| 宁乡县| 海兴县| 墨玉县| 克山县| 灌南县| 南丰县| 泸溪县| 丘北县| 息烽县| 富蕴县| 开江县| 邵武市| 江阴市| 观塘区| 石棉县| 始兴县| 铜山县| 馆陶县| 福泉市| 南宁市| 灵石县| 资溪县| 贞丰县| 大化| 教育|