ajax请求+php上传图片

一,新建文件,upload文件夹内是空,用来保存上传过的图片

1.png

二,新建数据库,新建表,数据库名(upload),表名(photo)

  这里是photo表里面的字段和类型
2.png

三,html代码引用 jquery 和 template 模版



四,html内容


模版内容,类名自己定义,写样式


五,ajax请求

 $(function () {
        $.ajax({
            url: "php/api.php",
            type: "POST",
            dataType: "json",

            success: function (data, textStatus) {
                console.log(data);
                var html = template("test", data);
                $("#content").html(html);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                console.log(XMLHttpRequest["responseText"]);
            }
        })
    })

六,conn.php 内容

连接本机数据库

$conn = mysqli_connect("localhost","root","");

更改连接的默认数据库

mysqli_select_db($conn,"upload");

告诉mysql服务器把后面要发送的sql语句使用的字符集当作指定的字符集来解析,并且返回的结果数据的字符集也是指定的字符集,作用就是保证客户端(sql语句)和服务器端使用的编码一致,不至于出现乱码或者数据丢失

mysqli_query($conn,"set names utf8");

conn.php


七,api.php内容

 200,
    "data" => null,
    "msg" => "数据获取成功"
    );
        $sql = "select * from photo";
        $result = mysqli_query($conn,$sql);
        if ( mysqli_num_rows($result)>0) {
            $studentlist = array();
            while ($row = mysqli_fetch_assoc($result)){
                $studentlist[] = $row;
            }
            $responseArr["data"] = $studentlist;
        }else{
            $responseArr["msg"] = "暂无记录";
            $responseArr["code"] = 207;
        }
        die(json_encode($responseArr));
        mysqli_close($conn);
 ?>

八,upload.php 内容



 0) {
      echo "错误: " . $_FILES["file"]["error"] . "
"; }else{ $filenames = $_FILES['file']['name']; //strtolower 把所有字符转为小写 //substr返回字符串的一部分 //strripos查找字符串在另一字符串中最后一次出现的位置(对大小写不敏感) $file_ext_name = strtolower(substr($filenames, strripos($filenames,'.'))); //重新给上传的文件命名,增加一个年月日时分秒的前缀,并且加上保存路径 $filename = "../upload/".date("YmdHis").$_FILES["file"]["name"]; $fileurl = "../upload/".date("YmdHis").$_FILES["file"]["name"]; // 临时文件路径 存放路径,参数1:临时文件路径,参数2:存放的路径 move_uploaded_file($_FILES["file"]["tmp_name"],$filename); echo "文件名:" . $_FILES["file"]["name"] . "
"; echo "文件类型:" . $_FILES["file"]["type"] . "
"; echo "文件大小:" . ($_FILES["file"]["size"] / 1024) . "KB
"; echo "暂存目录:" . $_FILES["file"]["tmp_name"] . "
"; } }else{ echo "您上传的文件不正确"; } //执行sql语句 $sql = "insert into photo(name,type,size,url) value('$filenames','$filetype','$filesize','$fileurl')"; echo $sql."
"; $resule = mysqli_query($conn,$sql); if($resule){ echo "数据添加成功"; //间隔1s跳转到主页面 header("Refresh:1;url=../upload.html"); }else{ echo "数据添加失败".mysqli_error($conn); } // 关闭数据库 mysqli_close($conn); ?>

php文件上传文件error错误码


2.png

$FILES['file']['error']一共有7种类型
(1):值为0 UPLOAD_ERR_OK 没有错误,文件上传成功
(2):值为1 UPLOAD_ERR_INI_SIZE 上传的文件超过了 php.ini 中 upload_max_filesize选项限制的值。
(3):值为2 UPLOAD_ERR_FORM_SIZE 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
(4):值为3 UPLOAD_ERR_PARTIAL 文件只有部分被上传。
(5):值为4 UPLOAD_ERR_NO_FILE 没有文件被上传。
(6):值为6 UPLOAD_ERR_NO_TMP_DIR 找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。
(7):值为7 UPLOAD_ERR_CANT_WRITE 文件写入失败。PHP 5.1.0 引进。

完成

你可能感兴趣的:(ajax请求+php上传图片)