1. 程式人生 > 實用技巧 >php操作mysql關於檔案上傳、儲存

php操作mysql關於檔案上傳、儲存

php+前端+mysql實現檔案上傳並儲存

我們都知道很多網站都需要上傳檔案,最普遍的就是圖片上傳,即是使用者頭像等等;

關於mysql+php實現檔案查詢,儲存大致兩個方式,

1、直接把檔案寫入mysql中,mysql提供了二進位制檔案儲存型別,

詳情可以看看這個https://blog.csdn.net/treeshy/article/details/50925168

2、第二種相對比較簡單,直接在mysql的欄位中儲存檔案路徑就好。

第二種操作演示:

1、使用html的form表單上傳檔案;

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>檔案傳輸、儲存入資料庫測試</title>
</head>
<body>
<html>
<head>
<title>檔案上傳</title>
</head>
<body>
<form action="test02.php" method="post" enctype="multipart/form-data">
description:
<input type="text" name="form_description"><br>
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
選擇檔案:<input type="file" name="myfile">
<input type="submit" value="上傳檔案">
</form>

</body>
</html>

</form>

</body>
</html>

2、conn.php,連線mysql資料庫

<?php
header("Content-Type:text/html;charset=utf8");
$mysql_server_name = "localhost:3306"; //連線資料庫埠
$mysql_username = "root"; //使用者名稱
$mysql_password = "15284"; //密碼
$mysql_database = "binary_data"; //資料庫名稱
$conn = new mysqli($mysql_server_name, $mysql_username, $mysql_password, $mysql_database); //建構函式mysql
// 檢測連線
if ($conn->connect_error) {
die("連線失敗: " . $conn->connect_error);
}else{
echo '連線資料庫成功!';
}

3、insert.php,php操作mysql資料庫

<?php

//include_once 'conn.php'連線資料庫
include_once 'conn.php';
//獲取對檔案的描述
$description = $_POST['form_description'];

//獲取檔案
$mypic = $_FILES["myfile"];

if (!empty($mypic)) {
// 獲取檔案的資訊
$error = $mypic["error"];
$picname = $mypic["name"];
$picsize = $mypic["size"];
$pictype = $mypic["type"];
// 獲取檔案的副檔名
$type = strstr($picname, ".");
// 為檔案命名
$pics = time() . rand(1, 9999) . $type;
// 設定檔案儲存路徑,為避免中文亂碼,採用iconv()函式設定編碼
$dir = 'uploads/' . iconv('UTF-8', 'gbk', basename($_FILES['myfile']['name']));
// 將檔案儲存在$dir目錄下
move_uploaded_file($_FILES['myfile']['tmp_name'], $dir);

if ($error == UPLOAD_ERR_OK && $picsize > 0) {
// 獲取檔案儲存路徑
$pathname = 'uploads/' . $picname;
}
// 將資訊寫入mysql資料表中
$sql = "INSERT INTO data_test(description,bin_data,filename,filesize,filetype)"

. " VALUES ('$description','$pathname','$picname','$picsize','$pictype')";
$conn->query($sql);
}

4、text.sql建庫,建表命令。

-- 建立資料庫
create database IF NOT EXISTS binary_data;
use binary_data;
-- 建立資料表
CREATE TABLE IF NOT EXISTS data_text (
id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,
description CHAR(50),
bin_data CHAR(100),
filename CHAR(50),
filesize CHAR(50),
filetype CHAR(50))ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- [ENGINE=InnoDB DEFAULT CHARSET=utf8] 表引擎InnoDB 字符集為utf-8


關於$_FILES用法:https://www.cnblogs.com/laijinquan/p/8682282.html