新聞中心
隨著互聯(lián)網(wǎng)的發(fā)展,圖片已經(jīng)成為了網(wǎng)站中必不可少的一部分。而也成為了網(wǎng)站開發(fā)中的一個(gè)重要問(wèn)題。本文將介紹如何在PHP中實(shí)現(xiàn)圖片上傳和保存到數(shù)據(jù)庫(kù)的過(guò)程。

一、圖片上傳
圖片上傳是將圖片從客戶端上傳到服務(wù)器端的過(guò)程。在PHP中,可以使用HTML的form表單實(shí)現(xiàn)。具體步驟如下:
1. 在HTML頁(yè)面中,添加一個(gè)文件上傳的表單元素
“`HTML
“`
2. 在PHP頁(yè)面中,編寫上傳代碼
“`PHP
$target_dir = “uploads/”;
$target_file = $target_dir . basename($_FILES[“fileToUpload”][“name”]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// 檢查文件類型
if($imageFileType != “jpg” && $imageFileType != “png” && $imageFileType != “jpeg”
&& $imageFileType != “gif” ) {
echo “Sorry, only JPG, JPEG, PNG & GIF files are allowed.”;
$uploadOk = 0;
}
// 檢查文件大小
if ($_FILES[“fileToUpload”][“size”] > 500000) {
echo “Sorry, your file is too large.”;
$uploadOk = 0;
}
// 上傳文件
if ($uploadOk == 0) {
echo “Sorry, your file was not uploaded.”;
} else {
if (move_uploaded_file($_FILES[“fileToUpload”][“tmp_name”], $target_file)) {
echo “The file “. basename( $_FILES[“fileToUpload”][“name”]). ” has been uploaded.”;
} else {
echo “Sorry, there was an error uploading your file.”;
}
}
“`
變量$target_dir存儲(chǔ)上傳文件的目錄,$target_file存儲(chǔ)上傳文件的路徑,$uploadOk存儲(chǔ)上傳是否成功的標(biāo)志,$imageFileType存儲(chǔ)上傳文件的類型。在上傳代碼中,首先檢查文件類型和大小,如果符合條件,則將文件從臨時(shí)目錄移動(dòng)到$target_file。
二、圖片保存到數(shù)據(jù)庫(kù)
圖片保存到數(shù)據(jù)庫(kù)可以將圖片存儲(chǔ)到MySQL數(shù)據(jù)庫(kù)中,可以確保圖片的安全性和方便管理。具體步驟如下:
1. 使用MySQL創(chuàng)建一個(gè)存儲(chǔ)圖片的表
“`SQL
CREATE TABLE `images` (
`id` int(11) NOT NULL auto_increment,
`filename` varchar(255) NOT NULL,
`filetype` varchar(255) NOT NULL,
`filesize` int(11) NOT NULL,
`filedata` longblob NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
“`
2. 將上傳的圖片讀取到一個(gè)變量中
“`PHP
$filename = $_FILES[“fileToUpload”][“name”];
$filetype = $_FILES[“fileToUpload”][“type”];
$filesize = $_FILES[“fileToUpload”][“size”];
$filedata = addslashes(file_get_contents($_FILES[“fileToUpload”][“tmp_name”]));
“`
在這里,$filedata存儲(chǔ)的是二進(jìn)制數(shù)據(jù),需要使用函數(shù)addslashes將數(shù)據(jù)轉(zhuǎn)義后存儲(chǔ)到數(shù)據(jù)庫(kù)中。
3. 將圖片數(shù)據(jù)插入到數(shù)據(jù)庫(kù)中
“`PHP
$con = mysqli_connect(“l(fā)ocalhost”,”root”,””,”test”);
$sql = “INSERT INTO images (filename, filetype, filesize, filedata) VALUES (‘$filename’, ‘$filetype’, ‘$filesize’, ‘$filedata’)”;
if (!mysqli_query($con,$sql)) {
die(‘Error: ‘ . mysqli_error($con));
}
echo “1 record added”;
mysqli_close($con);
“`
在這里,將圖片的文件名、類型、大小和二進(jìn)制數(shù)據(jù)插入到數(shù)據(jù)庫(kù)中。
三、圖片輸出
圖片輸出指的是將保存在數(shù)據(jù)庫(kù)中的圖片讀取出來(lái)并在網(wǎng)頁(yè)中顯示。具體步驟如下:
1. 從數(shù)據(jù)庫(kù)中讀取圖片數(shù)據(jù)
“`PHP
$con = mysqli_connect(“l(fā)ocalhost”,”root”,””,”test”);
$sql = “SELECT * FROM images WHERE id = 1”;
$result = mysqli_query($con,$sql);
if (!$result) {
printf(“Error: %s\n”, mysqli_error($con));
exit();
}
$row = mysqli_fetch_array($result);
$filesize = $row[‘filesize’];
$filedata = $row[‘filedata’];
mysqli_close($con);
“`
在這里,從數(shù)據(jù)庫(kù)中讀取id為1的圖片數(shù)據(jù),存儲(chǔ)在變量$row中。
2. 輸出圖片
“`PHP
header(“Content-length: $filesize”);
header(“Content-type: image/jpg”);
echo $filedata;
“`
在這里,設(shè)置輸出文件的大小和類型,將二進(jìn)制數(shù)據(jù)輸出到網(wǎng)頁(yè)中。
以上就是的過(guò)程。通過(guò)以上方法,我們可以實(shí)現(xiàn)從客戶端上傳圖片,將圖片保存到數(shù)據(jù)庫(kù)和從數(shù)據(jù)庫(kù)中讀取圖片并在網(wǎng)頁(yè)中顯示的功能。這些功能在網(wǎng)站開發(fā)中都是非常常見的,加深理解和應(yīng)用將有助于我們更好地進(jìn)行網(wǎng)站開發(fā)。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
php 怎么把上傳的圖片路勁存到mysql數(shù)據(jù)庫(kù),然后再在頁(yè)面讀取出來(lái)?
首先上傳圖片需陵神要的是二進(jìn)制 和普通備帶的數(shù)據(jù)不同 在接受的時(shí)候 需要用 $_FILES 保存的時(shí)候是提取臨時(shí)文件再保存 是一系列比仿汪蘆較復(fù)雜的操作 當(dāng)然看看視頻還是挺簡(jiǎn)單的
你參考參考這個(gè)視頻看看 純手工
這兒就不用說(shuō)文件上傳了撒。
上傳文胡枝件保存的路徑你肯定是知道的,還有文件名。把這兩個(gè)拼攜悉接起來(lái),放到數(shù)據(jù)庫(kù)字段里面,一般為相對(duì)地址。
使用的時(shí)候直接放出來(lái)就行了。
我想中間并沒與什么特殊的地方,你看我回到都褲隱敏是勉強(qiáng)打這么多字
存為字符串類型,上傳時(shí)會(huì)上傳到一個(gè)文件夾里面,注意:這個(gè)文件夾必須能訪問(wèn)。
如:文件夾up,保存到數(shù)據(jù)庫(kù)的字符串是/up/告困a.jpg。讀取是先通過(guò)查找數(shù)據(jù)庫(kù)命令得到保存路徑的字段就可以襪好念,如果要html輸出,那你需要先把讀取的字段以變量的方式傳到襪培模板里的img標(biāo)簽,這樣瀏覽器才能解析。
你學(xué)的是原生php還是框架?
回復(fù) 6# 就是為了實(shí)現(xiàn)這樣的一個(gè)功能: 上面的代碼,可以派伍得到效果圖中的顯示?,F(xiàn)在是在點(diǎn)效果圖中的提交按鈕后,如何讀取提交頁(yè)面中的數(shù)據(jù),然后再將數(shù)基空據(jù)存入數(shù)據(jù)庫(kù)中,這段代搏羨瞎碼如何處理。 難點(diǎn)是:如何通過(guò)PHP代碼讀取提交時(shí)的數(shù)據(jù)。
關(guān)于php接收?qǐng)D片路徑保存到數(shù)據(jù)庫(kù)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),香港虛擬主機(jī)被稱為香港虛擬空間/香港網(wǎng)站空間,或者簡(jiǎn)稱香港主機(jī)/香港空間。香港虛擬主機(jī)特點(diǎn)是免備案空間開通就用, 創(chuàng)新互聯(lián)香港主機(jī)精選cn2+bgp線路訪問(wèn)快、穩(wěn)定!
網(wǎng)站題目:如何在PHP中接收?qǐng)D片路徑并將其保存到數(shù)據(jù)庫(kù)中(php接收?qǐng)D片路徑保存到數(shù)據(jù)庫(kù))
瀏覽路徑:http://www.dlmjj.cn/article/djhcesg.html


咨詢
建站咨詢
