新标准的XMLHttpRequest支持上传文件,但是不支持html5的浏览器不行 html页面 !DOCTYPE html PUBLIC -//W3C//DTDXHTML1.0Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd html xmlns= http://www.w3.org/1999/xhtml head meta http-equiv= Content-Type content= text/htm
新标准的XMLHttpRequest支持上传文件,但是不支持html5的浏览器不行
html页面
<
!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns= "http://www.w3.org/1999/xhtml">
< head>
< meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" />
< title>Upload Files using XMLHttpRequest - Minimal< /title>
< script type= "text/javascript">
function fileSelected() {
var file = document.getElementById( 'fileToUpload').files[0];
if (file) {
var fileSize = 0;
if (file.size > 1024 * 1024)
fileSize = ( Math.round(file.size * 100 / (1024 * 1024)) / 100). toString() + 'MB';
else
fileSize = ( Math.round(file.size * 100 / 1024) / 100). toString() + 'KB';
document.getElementById( 'fileName').innerHTML = 'Name: ' + file.name;
document.getElementById( 'fileSize').innerHTML = 'Size: ' + fileSize;
document.getElementById( 'fileType').innerHTML = 'Type: ' + file.type;
}
}
function uploadFile() {
var fd = new FormData();
fd.append( "fileToUpload", document.getElementById( 'fileToUpload').files[0]);
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener( "progress", uploadProgress, false);
xhr.addEventListener( "load", uploadComplete, false);
xhr.addEventListener( "error", uploadFailed, false);
xhr.addEventListener( "abort", uploadCanceled, false);
xhr.open( "POST", "test2.php");
xhr.send(fd);
}
function uploadProgress(evt) {
if (evt.lengthComputable) {
var percentComplete = Math.round(evt.loaded * 100 / evt.total);
document.getElementById( 'progressNumber').innerHTML = percentComplete. toString() + '%';
}
else {
document.getElementById( 'progressNumber').innerHTML = 'unable to compute';
}
}
function uploadComplete(evt) {
/* This event is raised when the server send back a response */
alert(evt.target.responseText);
}
function uploadFailed(evt) {
alert( "There was an error attempting to upload the file.");
}
function uploadCanceled(evt) {
alert( "The upload has been canceled by the user or the browser dropped the connection.");
}
< /script>
< /head>
< body>
< form id= "form1" enctype= "multipart/form-data" method= "post" action= "upload.php">
< div class= "row">
< label for= "fileToUpload">Select a File to Upload< /label>
< input type= "file" name= "fileToUpload" id= "fileToUpload" οnchange= "fileSelected();" />
< /div>
< div id= "fileName">< /div>
< div id= "fileSize">< /div>
< div id= "fileType">< /div>
< div class= "row">
< input type= "button" οnclick= "uploadFile()" value= "Upload" />
< /div>
< div id= "progressNumber">< /div>
< /form>
< /body>
< /html>
< html xmlns= "http://www.w3.org/1999/xhtml">
< head>
< meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" />
< title>Upload Files using XMLHttpRequest - Minimal< /title>
< script type= "text/javascript">
function fileSelected() {
var file = document.getElementById( 'fileToUpload').files[0];
if (file) {
var fileSize = 0;
if (file.size > 1024 * 1024)
fileSize = ( Math.round(file.size * 100 / (1024 * 1024)) / 100). toString() + 'MB';
else
fileSize = ( Math.round(file.size * 100 / 1024) / 100). toString() + 'KB';
document.getElementById( 'fileName').innerHTML = 'Name: ' + file.name;
document.getElementById( 'fileSize').innerHTML = 'Size: ' + fileSize;
document.getElementById( 'fileType').innerHTML = 'Type: ' + file.type;
}
}
function uploadFile() {
var fd = new FormData();
fd.append( "fileToUpload", document.getElementById( 'fileToUpload').files[0]);
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener( "progress", uploadProgress, false);
xhr.addEventListener( "load", uploadComplete, false);
xhr.addEventListener( "error", uploadFailed, false);
xhr.addEventListener( "abort", uploadCanceled, false);
xhr.open( "POST", "test2.php");
xhr.send(fd);
}
function uploadProgress(evt) {
if (evt.lengthComputable) {
var percentComplete = Math.round(evt.loaded * 100 / evt.total);
document.getElementById( 'progressNumber').innerHTML = percentComplete. toString() + '%';
}
else {
document.getElementById( 'progressNumber').innerHTML = 'unable to compute';
}
}
function uploadComplete(evt) {
/* This event is raised when the server send back a response */
alert(evt.target.responseText);
}
function uploadFailed(evt) {
alert( "There was an error attempting to upload the file.");
}
function uploadCanceled(evt) {
alert( "The upload has been canceled by the user or the browser dropped the connection.");
}
< /script>
< /head>
< body>
< form id= "form1" enctype= "multipart/form-data" method= "post" action= "upload.php">
< div class= "row">
< label for= "fileToUpload">Select a File to Upload< /label>
< input type= "file" name= "fileToUpload" id= "fileToUpload" οnchange= "fileSelected();" />
< /div>
< div id= "fileName">< /div>
< div id= "fileSize">< /div>
< div id= "fileType">< /div>
< div class= "row">
< input type= "button" οnclick= "uploadFile()" value= "Upload" />
< /div>
< div id= "progressNumber">< /div>
< /form>
< /body>
< /html>
转载于:https://blog.51cto.com/521lovelife/1123142