ajax 文件上传

来源:互联网 发布:价格走势软件 编辑:程序博客网 时间:2024/06/03 20:50
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" xml:lang="en"><head>    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">    <title>Document</title>    <script type="text/javascript" src="jquery-1.7.2.min.js"></script>    <script type="text/javascript" src="ajaxfileupload.js"></script></head><body><form enctype="multipart/form-data" id="upForm">    <input type="file" name="file" id="file"><br><br>    <input type="button" value="提交" id="button"></form><div class="picDis">    <img src="" alt=""></div></body></html><script>    $(document).ready(function(){        $('#button').click(function() {            var formData = new FormData($('form')[0]);            formData.append('file',$('#file')[0].files[0]);//坑点: 无论怎么传数据,console.log(formData)都会显示为空,但其实值是存在的,f12查看Net tab可以看到数据被上传了            $.ajax({                url:'upload.php',                type: 'POST',                data: formData,//这两个设置项必填                contentType: false,                processData: false,                success:function(data){                    console.log(data)                    var srcPath = data;                    console.log();                    $('.picDis img').attr('src', ''+srcPath);                }            })        });    })</script>php代码
<?php$upFile = $_FILES['file'];/*** 创建文件夹函数,用于创建保存文件的文件夹* @param str $dirPath 文件夹名称* @return str $dirPath 文件夹名称*/function creaDir($dirPath){$curPath = dirname(__FILE__);$path = $curPath.'\\'.$dirPath;if (is_dir($path) || mkdir($path,0777,true)) {return $dirPath;}}//判断文件是否为空或者出错if ($upFile['error']==0 && !empty($upFile)) {$dirpath = creaDir('upload');$filename = $_FILES['file']['name'];$queryPath = 'upload/'.$filename;//move_uploaded_file将浏览器缓存file转移到服务器文件夹if(move_uploaded_file($_FILES['file']['tmp_name'],$queryPath)){echo $queryPath;  }}?>