ajax請求+php上傳圖片

一拯勉,新建文件,upload文件夾內(nèi)是空憔购,用來保存上傳過的圖片

1.png

二宫峦,新建數(shù)據(jù)庫,新建表倦始,數(shù)據(jù)庫名(upload)斗遏,表名(photo)

  這里是photo表里面的字段和類型
2.png

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

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="http://cdn.staticfile.org/artTemplate.js/3.0.1/template.js"></script>

四鞋邑,html內(nèi)容

<form action="php/upload.php" method="post" enctype="multipart/form-data">
        <input type="file" name="file" id="file">
        <br>
        <input type="submit" name="submit" value="提交">
</form>
<ul id="content">

 </ul>

模版內(nèi)容诵次,類名自己定義,寫樣式

<script type="text/html" id="test">
    {{each data}}
        <li class="ming">
            <span>{{$value.name}}</span>
            <br>
            <span>{{$value.size}}</span>
            <br>
            <span>{{$value.type}}</span>
            <br>
            <span class="lu">{{$value.url}}</span>
        </li> 
    {{/each}}
</script>

五枚碗,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 內(nèi)容

連接本機(jī)數(shù)據(jù)庫

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

更改連接的默認(rèn)數(shù)據(jù)庫

mysqli_select_db($conn,"upload");

告訴mysql服務(wù)器把后面要發(fā)送的sql語句使用的字符集當(dāng)作指定的字符集來解析,并且返回的結(jié)果數(shù)據(jù)的字符集也是指定的字符集肮雨,作用就是保證客戶端(sql語句)和服務(wù)器端使用的編碼一致遵堵,不至于出現(xiàn)亂碼或者數(shù)據(jù)丟失

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

conn.php

<?php
    $conn = mysqli_connect("localhost","root","");
    mysqli_select_db($conn,"upload");
    mysqli_query($conn,"set names utf8");
?>

七,api.php內(nèi)容

<?php
include 'conn.php';
$responseArr = array(
    "code" => 200,
    "data" => null,
    "msg" => "數(shù)據(jù)獲取成功"
    );
        $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 內(nèi)容

<?php include("conn.php")?>

<?php
    //命名
    $filenames= $_FILES['file']['name'];
    $filesize = $_FILES['file']['size'];
    $filetype = $_FILES['file']['type'];
    //判斷圖片類型陌宿,和大小
    if ((($_FILES["file"]["type"] == "image/jpg")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($_FILES["file"]["type"] == "image/png")|| ($_FILES["file"]["type"] == "image/jpeg")) && ($_FILES["file"]["size"] < 10241000)){
    if ($_FILES["file"]["error"] > 0) {
      echo "錯誤: " . $_FILES["file"]["error"] . "<br/>";
     }else{
        $filenames = $_FILES['file']['name'];
        //strtolower 把所有字符轉(zhuǎn)為小寫
        //substr返回字符串的一部分
        //strripos查找字符串在另一字符串中最后一次出現(xiàn)的位置(對大小寫不敏感)
        $file_ext_name = strtolower(substr($filenames, strripos($filenames,'.')));
        //重新給上傳的文件命名锡足,增加一個年月日時分秒的前綴,并且加上保存路徑
        $filename = "../upload/".date("YmdHis").$_FILES["file"]["name"];
        $fileurl = "../upload/".date("YmdHis").$_FILES["file"]["name"];
        // 臨時文件路徑  存放路徑壳坪,參數(shù)1:臨時文件路徑舶得,參數(shù)2:存放的路徑
        move_uploaded_file($_FILES["file"]["tmp_name"],$filename); 
        echo "文件名:" . $_FILES["file"]["name"] . "<br />";
        echo "文件類型:" . $_FILES["file"]["type"] . "<br />";
        echo "文件大小:" . ($_FILES["file"]["size"] / 1024) . "KB<br />";
        echo "暫存目錄:" . $_FILES["file"]["tmp_name"] . "<br />";
    }
}else{
    echo "您上傳的文件不正確";
}
    //執(zhí)行sql語句
    $sql = "insert into photo(name,type,size,url) value('$filenames','$filetype','$filesize','$fileurl')";
    echo $sql."<br/>";
    $resule = mysqli_query($conn,$sql);
    if($resule){
        echo "數(shù)據(jù)添加成功";
        //間隔1s跳轉(zhuǎn)到主頁面
        header("Refresh:1;url=../upload.html");
    }else{
        echo "數(shù)據(jù)添加失敗".mysqli_error($conn);
    }
    //  關(guān)閉數(shù)據(jù)庫
    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 引進(jìn)发框。
(7):值為7 UPLOAD_ERR_CANT_WRITE 文件寫入失敗躺彬。PHP 5.1.0 引進(jìn)。

完成

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末缤底,一起剝皮案震驚了整個濱河市顾患,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌个唧,老刑警劉巖江解,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異徙歼,居然都是意外死亡犁河,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門魄梯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來桨螺,“玉大人,你說我怎么就攤上這事酿秸∶鹣瑁” “怎么了?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵辣苏,是天一觀的道長肝箱。 經(jīng)常有香客問我,道長稀蟋,這世上最難降的妖魔是什么煌张? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮退客,結(jié)果婚禮上骏融,老公的妹妹穿的比我還像新娘链嘀。我一直安慰自己,他們只是感情好档玻,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布怀泊。 她就那樣靜靜地躺著,像睡著了一般窃肠。 火紅的嫁衣襯著肌膚如雪包个。 梳的紋絲不亂的頭發(fā)上刷允,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天冤留,我揣著相機(jī)與錄音,去河邊找鬼树灶。 笑死纤怒,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的天通。 我是一名探鬼主播泊窘,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼像寒!你這毒婦竟也來了烘豹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤诺祸,失蹤者是張志新(化名)和其女友劉穎携悯,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體筷笨,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡张遭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年缕题,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡纸泄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出甜攀,到底是詐尸還是另有隱情秦叛,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布答恶,位于F島的核電站饺蚊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏亥宿。R本人自食惡果不足惜卸勺,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望烫扼。 院中可真熱鬧曙求,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至挤渐,卻和暖如春苹享,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背浴麻。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工得问, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人软免。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓宫纬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親膏萧。 傳聞我的和親對象是個殘疾皇子漓骚,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,930評論 2 89
  • 一、生成式 1.什么是生成式 生成式就是生成器的一種特殊寫法 2.寫法 a. 生成器 = (表達(dá)式 for 變量 ...
    QiuXian閱讀 220評論 0 0
  • 生活總是有那么多的不如意榛泛,如果一不開心就寄希望于當(dāng)初蝌蹂,那么你永遠(yuǎn)都不會開心。 生活真的像是那一條羅馬大道曹锨,有那么多...
    波啵啵啵閱讀 393評論 0 1
  • 世界喧囂 滿城皆是流雨 ...
    淚墨星閱讀 158評論 0 1
  • 生孩子的時候佳遂,她受了很大的苦。 妊娠期高血壓加產(chǎn)后出血幾乎要她半條命撒顿。 她常說:孩子就是我的命丑罪!孩子生出來時只3斤...
    萌媽育兒記閱讀 570評論 1 0