文件上傳在項目中,通常有兩個用武之地,分別爲設置用戶的頭像和上傳附件。本節咱們演示若是進行用戶頭像的上傳。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; } ?>