ajax异步,不刷新页面上传PDF文件,并写入数据库,得到异步数据,提示上传成功或失败

来源:互联网 发布:kinetic.js 编辑:程序博客网 时间:2024/06/17 20:56

页面代码:

<div style="cursor:pointer;" id="pdfshow"><img src="admin/images/pdf.png" style="width:30px;height:30px;"/><br />上传PDF</a></div><!--隐藏和显示上传表单-->


<div style="width:600px;height:300px;border:1px groove red;margin-left:100px;margin-top:50px;display:none;" id="pdfup">
<div style="width:500px;height:200px;margin-left:50px;margin-top:50px;">
<div align="center"><h1> 上传文件 </h1></div>
<form id="uploadForm" action="pdf.php" method="post" enctype="multipart/form-data"> 
<div style="margin-top:20px;">
<div style="float:left;height:25px;line-height:25px;font-size:20px;">文件名: </div>
<input type="text" name="kjname" id="kjname" value="" style="height:24px;width:400px;" maxlength="50"/>
</div>
<div style="clear:both;"></div>
<div style="margin-top:20px;">
<div style="float:left;height:25px;line-height:25px;font-size:20px;">选择文件: </div> 
<input type="file" name="myfile" value="" style='font-size:16px'/>
</div>
<div style="clear:both;"></div>
<div style="margin-top:20px;">
<div style="float:left;height:25px;line-height:25px;font-size:20px;">(*小于2M的PDF文件)</div> 
</div>
<div style="clear:both;"></div>
<div align="center" style="margin-top:20px;"><input type="button" style='font-size:22px' name="submit" value="确认上传" id="tijiao"/>  </div> 
</form> 
</div>
</div>
<script src="{$notice}"></script>
<script>
$(function(){
$("#tijiao").click(function(){//提交按钮执行方法
doUpload();
});
$("#pdfshow").click(function(){//上传按钮添加显示隐藏表单动画
$("#pdfup").toggle();//toggle(),点击一次是隐藏,在点击是显示,轮流执行
});
})
function doUpload() {  
    var formData = new FormData($( "#uploadForm" )[0]); //实例化表单,得到表单数据,#uploadForm是表单的id得到的是一个数组,[0]表单下表,代表第一个表单
$.ajax({  //ajax事件
          url: 'pdf.php' ,  //ajax地址文件
          type: 'POST',  //ajax方式
          data: formData,  //ajax数据
          async: false,  
          cache: false,  
          contentType: false,  
          processData: false,  
          success: function (returndata) {  //ajax成功后,异步页面返回的数据处理
              alert(returndata);  //弹窗返回的数据
          },  
          error: function (returndata) {  //ajax方法不成功的提示
              alert(returndata);  
          }  
     });

</script>


ajax异步上传文件代码:

<?php
header("Content-Type: text/html; charset=utf-8");  //指定字符集头


include ("data/config.inc.php");//引用数据库文件


$link = mysql_connect(DB_HOST,DB_USER,DB_PW);//数据库地址,用户名,密码
if (!$link) { //判断链接是否成功
    die("连接错误" . mysqli_connect_error()); //提示连接错误代码,mysqli_connect_error()只在PHP5.5以上,此处代码是环境低于5.5版本,高于5.5要使用mysqli

mysql_select_db(DB_NAME);//数据库表名
mysql_query("set names'utf8'");//字符集
 
if($_POST){ //判断是否有提交
$title = $_POST["kjname"];//得到用户填写文件名
$file = $_FILES['myfile']['name'];//得到表单内file标签内文件名,此处笔误应该是测试用,没有作用的代码
$file_name= $_FILES['myfile']['name'] ;  //得到表单内file标签内文件名,此处笔误应该是测试用,没有作用的代码
$tmp_name = $_FILES['myfile']['tmp_name'];  //得到表单内file标签内文件在虚拟内存的名字,
if($title == "" || $title == null){//判断是否填写文件名
echo "请填写文件名";
}else{
if ($_FILES['myfile']['type'] != "application/pdf") {  //判断文件类型是否是PDF
echo "请上传 PDF 格式的文件";  
}else{  
if(is_uploaded_file($tmp_name)) {  //is_uploaded_file()判断文件是否是POST提交,此处是安全措施,防止模拟POST方式上传文件
//upload file     
$dest_dir='pdf'; //上传文件的路径  
$name=$dest_dir.'/'.time().".pdf";  //生成带路径的完整文件名
$time = time();  //时间函数
$result = move_uploaded_file($tmp_name,$name);  // move_uploaded_file(1,2)上传文件,1是虚拟内存中文件名,2是上传后的路径和文件名集合,把1传递给2
if($result == true && $result == 1) { // move_uploaded_file(1,2)返回1或者false  
//$path="http://localhost:8080/CourseStudy/teacher/".$name;  
$path=$name; 
//echo $path;  
//插入数据  
$sql = "INSERT INTO c_news (catid,title,pdf,userid,username,inputtime,updatetime)  ";  
$sql .= "  VALUES ('46','$title','$name','1','admin','$time','$time');";  
$res = mysql_query($sql);
if($res == true){
echo "成功上传"; 
}
}else{  
echo "上传文件失败";    
}  
}else{  
echo "上传文件失败";    
}  

}


?>

0 0
原创粉丝点击