【php增刪改查實例】第二十四節 - 文件上傳在項目中的具體應用

文件上傳在項目中,通常有兩個用武之地,分別爲設置用戶的頭像和上傳附件。本節咱們演示若是進行用戶頭像的上傳。php

由於一個用戶單獨而且惟一對應了一個頭像,是一對一的關係,因此咱們須要去給tm_users表添加一個頭像字段 – header 。html


點擊保存按鈕,完成表字段的添加。mysql

本節中的頭像上傳,能夠對圖像進行裁剪,最終上傳到服務器的是一個通過裁剪後的圖像。git

圖像是保存在磁盤上的,數據庫只負責保存頭像的地址。github

如今把 5-10上課資料文件夾中的imageUpload文件夾拷貝到5-10文件夾中。
sql

imageUpload 是一個支持圖像裁剪的,以Javascript技術和PHP技術爲支撐的圖像上傳組件。(這個組件是github上找來的。)數據庫

其目錄結構以下:json

打開用戶管理頁面:服務器

當下要作的事情就是畫一個設置頭像的按鈕,當選中一條數據,再點擊設置頭像,就會跳出一個上傳頭像的頁面。3d

設置頭像按鈕的點擊事件爲 openHeaderDialog() , 咱們計劃點擊這個按鈕,就彈出一個對話框。因此,咱們還須要去畫一個dialog面板。

將如下代碼粘貼到body標籤的最末端。


src的地址爲:../imageUpload/index.html

而後,編寫打開上傳頭像頁面的方法:

目前爲止,咱們能夠成功的把圖片保存到對應的upload文件夾中,可是還沒法將圖片的地址保存到tm_users表。

在本案例中,上傳頭像的index.html是嵌套在外面的userManage.html頁面中的。

那麼,在index.html 裏面能夠直接訪問到 userManage.html 頁面裏的某一個方法。(前提是,這個方法是全局的。)

index.html:

修改openHeaderDialog

var userid = null;
function openHeaderDialog(){

    var rows = $("#grid0").datagrid("getSelections");

    if(rows.length != 1){
        $.messager.alert("系統提醒","請選擇一位要設置頭像的用戶!");
        return;
    }

    userid = rows[0].id; //獲取當前勾選用戶的ID


    //只有當你選中一條數據的時候,纔打開上傳頭像的頁面
    $("#dialog2").dialog("open");

}

經過parent能夠訪問到父頁面中的某一個方法。

後臺:

後臺文件基本同deleteUser.php,只須要修改少許的代碼便可。

<?php
    

    $resultData = array();
    $resultData["errCode"] = 0;
    $resultData["errMsg"] = "";
    
    //鏈接MySQL數據庫
    $conn = mysql_connect("localhost","root","");
    $db = mysql_select_db("test",$conn);
    mysql_query("set names utf8");

    $id = $_POST["id"];
    $header = $_POST["header"];

    $sql = "update tm_users set header = '$header' where id = $id;";

    mysql_query($sql) or die(err());

    echo json_encode($resultData);
    
    function err(){
        $resultData["errCode"] = -1;
        $resultData["errMsg"] = mysql_error();
        echo json_encode($resultData);
        return;
    }


?>

源碼獲取:https://www.jianshu.com/p/4977bd0073d5

相關文章
相關標籤/搜索