亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

php 下 html5 XHR2 + FormData + File API 上傳文件操作實(shí)例分析

瀏覽:179日期:2022-09-11 13:09:08

本文實(shí)例講述了php 下 html5 XHR2 + FormData + File API 上傳文件操作。分享給大家供大家參考,具體如下:

FormData的作用:

FormData對(duì)象可以幫助我們自動(dòng)的打包表單數(shù)據(jù),通過(guò)XMLHttpRequest的send()方法來(lái)提交表單。當(dāng)然FormData也可以動(dòng)態(tài)的append數(shù)據(jù)。FormData的最大優(yōu)點(diǎn)就是我們可以異步上傳一個(gè)二進(jìn)制文件。

例1如下:

<!DOCTYPE HTML><html lang='zh-CN'><head> <meta charset='UTF-8'> <title></title></head><body> <form method='post' onsubmit='return post();'> 用戶名<input type='text' name='uname' /> 密碼<input type='password' name='upwd' /> 郵箱<input type='text' name='uemail' /> <input type='submit' name='submit' value='提交' /> </form></body><script type='text/javascript'>function post() { var myForm = document.getElementById('myForm'); //FormData既可以從表單讀取數(shù)據(jù),也可以動(dòng)態(tài)append(鍵,值)添加 var fd = new FormData(myForm); var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState == 4) { alert(this.responseText); } }; xhr.open('post', 'post.php', true); xhr.send(fd); return false;}</script></html>

File API

使用HTML5 DOM新增的File API,現(xiàn)在可以讓網(wǎng)頁(yè)要求用戶選擇本地文件,并且讀取這些文件的信息了。

通過(guò)File API,我們可以在用戶選取一個(gè)或者多個(gè)文件之后,訪問(wèn)到代表了所選文件的一個(gè)或多個(gè)File對(duì)象,這些對(duì)象被包含在一個(gè)FileList對(duì)象中。

<!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' /> <input type='submit' name='submit' value='提交' /> </form></body><script type='text/javascript'> var upfile = document.getElementById('upfile'); upfile.onchange = function() { var file = this.files[0]; alert('文件名:' + file.name + 'rn' + '大小:' + file.size + 'rn'); };</script></html>

我們通過(guò)FormData + File API 上傳文件

<!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' /> <input type='submit' name='submit' value='提交' /> </form></body><script type='text/javascript'> var myForm = document.getElementById('myForm'); var upfile = document.getElementById('upfile'); myForm.onsubmit = function() { //我們創(chuàng)建一個(gè)FormData對(duì)象 var fd = new FormData(); var file = upfile.files[0]; //把文件添加到FormData對(duì)象中 fd.append('file', file); var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState == 4) {alert(this.responseText); } }; xhr.open('post', 'upfile.php', true); //發(fā)送FormData對(duì)象 xhr.send(fd); return false; };</script></html>

upfile.php代碼如下:

<?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';}

使用對(duì)象URL來(lái)顯示你所選擇的圖片

通過(guò)window.URL.createObjectURL()和 window.URL.revokeObjectURL()兩個(gè)DOM方法。

這兩個(gè)方法創(chuàng)建簡(jiǎn)單的URL字符串對(duì)象,用于指向任何 DOM File 對(duì)象數(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' /> <input type='submit' name='submit' value='提交' /> </form></body><script type='text/javascript'> var myForm = document.getElementById('myForm'); var upfile = document.getElementById('upfile'); upfile.onchange = function() { //創(chuàng)建一個(gè)img標(biāo)簽 var img = document.createElement('img'); //通過(guò)file對(duì)象創(chuàng)建對(duì)象URL img.src = window.URL.createObjectURL(this.files[0]); img.height = 60; img.onload = function() { //釋放對(duì)象URL window.URL.revokeObjectURL(this.src); }; document.body.appendChild(img); }; myForm.onsubmit = function() { //我們創(chuàng)建一個(gè)FormData對(duì)象 var fd = new FormData(); var file = upfile.files[0]; //把文件添加到FormData對(duì)象中 fd.append('file', file); var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState == 4) {alert(this.responseText); } }; xhr.open('post', 'upfile.php', true); //發(fā)送FormData對(duì)象 xhr.send(fd); return false; };</script></html>

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

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

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 亚洲一区二区在线播放 | 国产区在线视频 | 国产高清自偷自在线观看 | 国产成人精品一区二区 | 草逼网站视频 | 国产福利91| 免费播放观看视频大片 | 黄色一级片a | 久久精品久久久久久久久人 | 欧美草逼视频 | 亚洲综合黄色 | yy6080久久国产伦理 | 在线看三级aaa | 免费观看国产网址你懂的 | 九九热精品在线视频 | 91不卡在线精品国产 | 国产在线观看91精品2022 | 日韩中文字幕在线 | 国产精品尤物在线 | 青草视频在线观看免费视频 | 日本黄色片免费观看 | 国产吧在线视频 | 国产美女激情视频无打码 | 亚洲一区二区免费视频 | 激情五月黄色 | 欧美精品中出 | 日韩二三区| 国产亚洲精品一区二区在线观看 | a黄色网 | 日本特黄特黄特刺激大片 | 丁香狠狠色婷婷久久综合 | 亚洲欧洲视频在线观看 | 欧美视频一二三区 | 深夜福利视频在线看免费 | 一级黄色片一级黄色片 | 二区视频| 免费的a级毛片 | 欧美zzzz| 婷婷综合缴情亚洲狠狠图片 | 国产丝袜啪啪 | 综合精品一区 |