一 爲了測試圖片上傳功能, 把圖片路徑保存到數據庫, 咱們得先新建個測試表 test_img
.php
name | 類型 | 長度 | 可否null |
---|---|---|---|
id | varchar | 100 | no |
path | varchar | 100 | yes |
upload_time | timestamp | 0 | no |
CREATE TABLE test_img ( id int(4) UNSIGNED NOT NULL AUTO_INCREMENT, path varchar(100) default NULL, upload_time timestamp default CURRENT_TIMESTAMP, PRIMARY KEY(id) )engine=myisam DEFAULT charset=utf8
sql 命令: 插入表中時生成一個惟一的數字, 好比測試數據多了, id 是不停地自增, 若是要把 id 迴歸到 1, 能夠嘗試如下命令.html
alter table test_img auto_increment = 1
二 新建 img.html
文件用於選擇上傳圖片mysql
<!DOCTYPE html> <html lang="utf-8"> <head> <meta charset="UTF-8"> <title>圖片上傳</title> </head> <body> <form action="img.php" method="post" enctype="multipart/form-data"> 選擇上傳的圖片: <input type="file" name="file" accept="image/*"> <br><br> <input type="submit" value="上傳"> </form>
<form>
標籤中的 enctype
控制着是否編碼發送表單數據, 默認是 application/x-www-form-urlencoded
, 即在發送前編碼全部字符.sql
值 | 描述 |
---|---|
application/x-www-form-urlencoded | 在發送前編碼全部字符 ( 默認) |
multipart/form-data | 不對字符編碼。在使用包含文件上傳控件的表單時,必須使用該值 |
text/plain | 空格轉換爲 "+" 加號,但不對特殊字符編碼 |
<input>
標籤中的 accept
限制上傳格式.數據庫
三 新建 img.php
用於接受處理圖片app
$_FILES
獲取圖片文件, 將具體文件名字添加到數據表test_img
中, move_uploaded_file
將圖片文件存儲到目標文件夾下, iconv
做字符編碼處理, 防止有中文命名的圖片上傳後出現亂碼的狀況.post
<?php header("Content-Type: text/html;charset=utf-8"); $conn = new mysqli('localhost', 'root', '', 'test'); if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $destination = '../upload/image/'; $file = $_FILES['file']; // 獲取上傳的圖片 $filename = $file['name']; $insert = "INSERT INTO test_img (path) VALUES ('$filename')"; $test = move_uploaded_file($file['tmp_name'], $destination . iconv("UTF-8", "gb2312", $filename)); if ($insert && $test) { $conn->query($insert); } else { echo '上傳失敗' . '<br>'; } $select = 'SELECT path FROM test_img'; $result = $conn->query($select); while ($row = $result->fetch_assoc()) { echo "<img src=" . $destination . $row['path'] . ">"; }
print_r( $_FILES['file']); // 輸出接受到的上傳圖片獲得以下信息學習
上傳圖片成功後, 經過數據表圖片信息匹配 upload/image
下的圖片循環顯示出來, 效果以下.測試
四 寫到最後fetch
以上只是分享個 php 粗糙版上傳圖片的功能實現, 有些細節你大可本身嘗試修改完善, 要想學好必須經過親自動手領悟, 雲學習只能擼個皮毛而已, 若是個人分享能讓你有點啓發的話,不如點個贊激勵一下我, 固然不給也行, 我也會自我驅動學習的啦~