PHP使用HTML5 FileApi實現(xiàn)Ajax上傳文件功能示例
本文實例講述了PHP使用HTML5 FileApi實現(xiàn)Ajax上傳文件功能。分享給大家供大家參考,具體如下:
FileApi是HTML5的一個新特性,有了這個新特性,js就可以讀取本地的文件了,然后實現(xiàn)真正的Ajax上傳文件了,而不是iframe方法,下面會介紹api的使用,以及實現(xiàn)Ajax上傳文件:
FileApi使用
定義上傳控件:
<input type="file" name="pic" onchange="selfile();" />
當上傳文件后,就會觸發(fā)selfile()
函數(shù),selfile()
代碼:
var files = document.getElementsByTagName('input')[0].files;//fileList對象,文件列表對象,表示有多個文件被上傳,如果只有1個文件上傳也是fileList對象 var files = document.getElementsByTagName('input')[0].files[0];//file對象,表示單個上傳文件
Ajax上傳文件
效果圖:
項目結(jié)構(gòu)圖:
11-fileApi.html文件:
頁面中主要有一個上傳文件按鈕,如果有文件上傳,onchange事件被響應(yīng),selfile函數(shù)調(diào)用,然后js讀取上傳文件、把文件名和大小顯示在頁面中、創(chuàng)建FormData對象并添加數(shù)據(jù)、ajax上傳文件、預(yù)覽上傳文件效果。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>fileApi實現(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;//把文件名和大小顯示在頁面中 var fd = new FormData();//創(chuàng)建FormData對象 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');//動態(tài)創(chuàng)建img標簽 img.src = window.URL.createObjectURL(file);//把二進制對象直接讀出瀏覽器顯示的資源 document.getElementsByTagName('body')[0].appendChild(img);//把img標簽動態(tài)添加到dom樹中 } </script> </head> <body> <input type="file" name="pic" onchange="selfile();" /> <div id="debug"></div> </body> </html>
11-fileApi.php文件:
首先判斷是否有文件上傳,然后判斷上傳是否成功,最后把文件復(fù)制到當前目錄下的upload目錄下,文件名保持不變。
<?php /** * fileApi實現(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)容感興趣的讀者可查看本站專題:《php文件操作總結(jié)》、《PHP目錄操作技巧匯總》、《PHP常用遍歷算法與技巧總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計算法總結(jié)》及《PHP網(wǎng)絡(luò)編程技巧總結(jié)》
希望本文所述對大家PHP程序設(shè)計有所幫助。
- php 下 html5 XHR2 + FormData + File API 上傳文件操作實例分析
- php+html5實現(xiàn)無刷新圖片上傳教程
- 使用PHP和HTML5 FormData實現(xiàn)無刷新文件上傳教程
- php+html5+ajax實現(xiàn)上傳圖片的方法
- php+html5使用FormData對象提交表單及上傳圖片的方法
- php 使用html5實現(xiàn)多文件上傳實例
- PHP 文件上傳進度條的兩種實現(xiàn)方法的代碼
- php實現(xiàn)簡單的上傳進度條
- php上傳文件并顯示上傳進度的方法
- PHP+Ajax無刷新帶進度條圖片上傳示例
- PHP+Ajax實現(xiàn)上傳文件進度條動態(tài)顯示進度功能
- php 使用html5 XHR2實現(xiàn)上傳文件與進度顯示功能示例
相關(guān)文章
php使用substr()和strpos()聯(lián)合查找字符串中某一特定字符的方法
這篇文章主要介紹了php使用substr()和strpos()聯(lián)合查找字符串中某一特定字符的方法,涉及php中substr()和strpos()函數(shù)的使用技巧,需要的朋友可以參考下2015-05-05sourcesafe管理phpproj文件的補充說明(downmoon)
在使用vs.php+ sourcesafe管理代碼時,發(fā)現(xiàn)有時候并不能從vs.net IDE中正確獲取phpproj文件下的所有文件。但從sourcesafe IDE下卻可以。2009-04-04PHP連接MSSQL2008/2005數(shù)據(jù)庫(SQLSRV)配置實例
這篇文章主要介紹了PHP連接MSSQL2008/2005數(shù)據(jù)庫(SQLSRV)配置方法,實例講述了完整的連接與配置過程,并提供了具體的擴展文件下載與測試代碼,需要的朋友可以參考下2014-10-10PHP實現(xiàn)找出鏈表中環(huán)的入口節(jié)點
這篇文章主要介紹了PHP實現(xiàn)找出鏈表中環(huán)的入口節(jié)點,涉及php針對環(huán)形鏈表的遍歷、查找、計算等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01php利用iframe實現(xiàn)無刷新文件上傳功能的代碼
上傳原理很簡單就是利用表單的打開方式為iframe的id名,這樣就可以在當前頁面的iframe打來了,實現(xiàn)文件上傳,再利用js返回上傳結(jié)果。2011-09-09簡單了解WordPress開發(fā)中update_option()函數(shù)的用法
這篇文章主要介紹了WordPress開發(fā)中update_option()函數(shù)的用法,update_option()函數(shù)經(jīng)常被用于更新數(shù)據(jù)庫中的數(shù)據(jù),需要的朋友可以參考下2016-01-01php的chr和ord函數(shù)實現(xiàn)字符加減乘除運算實現(xiàn)代碼
這兩個函數(shù)到底有什么用呢? 用來做字符加減運算最合適了. 普通的字符是無法做加減運算指向下一個字符的. 而轉(zhuǎn)成ASCII后就可以做加減乘除了. 處理好后再轉(zhuǎn)成字符就可以了. 目前的很多字符串加密,解密都用到此功能!2011-12-12