未加星标

ajax实现无刷新上传文件功能

字体大小 | |
[前端(javascript) 所属分类 前端(javascript) | 发布者 店小二03 | 时间 | 作者 红领巾 ] 0人收藏点击收藏
本文实例为大家分享了ajax实现无刷新上传文件功能的具体代码,供大家参考,具体内容如下

详细代码如下

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ajax无刷新上传文件</title>
<script>
window.onload = function(){
var oBtn = document.getElementById('btn');
var oMyFile = document.getElementById('myFile');
oBtn.onclick = function() {
//alert(oMyFile.value); //获取到的是file控件的value值,这个内容是显示给你看的文字,不是我们选择的文件
//oMyFile.files file控件中选择的文件列表对象
//alert(oMyFile.files);
//我们是要通过ajax把oMyFile.files[0]数据发送给后端
/*
for (var attr in oMyFile.files[0]) {
console.log( attr + ' : ' + oMyFile.files[0][attr] );
}
*/
//利用ajax发送必须要有一个ajax对象
var xhr = new XMLHttpRequest();
//监听上传事件
xhr.onload = function(){
//alert(1);
//alert(this.responseText);//后端返回的数据
var d = JSON.parse(this.responseText);
alert(d.msg + ' : ' + d.url); //显示上传成功 并且显示文件路径
}
xhr.open('post','post_file.php',true); //open打开的方式不能使用get,上传文件的地址,使用异步上传
//在使用post发送的时候必须要带一些请求头信息
xhr.setRequestHeader('X-Request-With', 'XMLHttpRequest');
//send要发送数据
//将要上传的数据转换成二进制数据
//那么必须知道后端接收当前文件的名称是什么 然后后面带上当前文件的数据
var oFormData = new FormData(); //通过FormData来构建提交数据
oFormData.append('file',oMyFile.files[0]);
xhr.send(oFormData);
}
}
</script>
</head>
<body>
<input type="file" id="myFile" /><input type="button" id="btn" value="上传" />
</body>
</html>

php代码post_file.php

<?php
header('Content-type:text/html; charset="utf-8"');
$upload_dir = 'uploads/';
if(strtolower($_SERVER['REQUEST_METHOD']) != 'post'){
exit_status(array('code'=>1,'msg'=>'错误提交方式'));
}
if(array_key_exists('file',$_FILES) && $_FILES['file']['error'] == 0 ){
$pic = $_FILES['file'];
if(move_uploaded_file($pic['tmp_name'], $upload_dir.$pic['name'])){
exit_status(array('code'=>0,'msg'=>'上传成功','url'=>$upload_dir.$pic['name']));
}
}
echo $_FILES['file']['error'];
exit_status(array('code'=>1,'msg'=>'出现了一些错误'));
function exit_status($str){
echo json_encode($str);
exit;
}
?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

本文前端(javascript)相关术语:javascript是什么意思 javascript下载 javascript权威指南 javascript基础教程 javascript 正则表达式 javascript设计模式 javascript高级程序设计 精通javascript javascript教程

主题: XML数据HTMLETH收当Head
分页:12
转载请注明
本文标题:ajax实现无刷新上传文件功能
本站链接:http://www.codesec.net/view/560923.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 前端(javascript) | 评论(0) | 阅读(10)