MySQL數(shù)據(jù)庫為BLOB做出的定義如下:BLOB數(shù)據(jù)類型是一種大型的二進(jìn)制對象,可以保存可變數(shù)量的數(shù)據(jù)?
成都創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、臨潭網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為臨潭等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
BLOB具有四種類型,分別是TINYBLOB,BLOB, MEDIUMBLOB 和LONGBLOB,區(qū)別在于各自所能夠保存的最大數(shù)據(jù)長度不同。
在介紹了所需要使用的數(shù)據(jù)類型之后,我們可以使用以下語句創(chuàng)建保存圖象的數(shù)據(jù)表。
CREATE TABLE Images ( PicNum int NOT NULL AUTO_INCREMENT PRIMARY KEY, Image BLOB );
在通過程序來實(shí)現(xiàn)二進(jìn)制的轉(zhuǎn)化
其實(shí)保存路徑是最方便的辦法!
直接將圖片以二進(jìn)制流的方式寫入到mysql數(shù)據(jù)庫中,由于數(shù)據(jù)量大,必然會導(dǎo)致服務(wù)器的數(shù)據(jù)庫負(fù)載很大
我的建議:?采取將圖片存儲在物理磁盤?將相對路徑存儲在數(shù)據(jù)庫中?這樣會減小數(shù)據(jù)庫負(fù)載
附上 ?"上傳圖片" 代碼:
///?summary
///?上傳圖片
///?/summary
///?param?name="files"文件框名稱/param
///?param?name="paths"上傳文件路徑,url/param
///?param?name="fmax"文件的最大值,單位為字節(jié)/param
///?param?name="ftype"類型:1表示圖片;0表示所有文件/param
///?returns/returns
public?static?string?upfiles(System.Web.UI.HtmlControls.HtmlInputFile?files,?string?paths,?long?fmax,?string?ftype)
{
//files?文件上傳組件的名稱;paths?要上傳到的目錄;fmax是上傳文件最大值;ftype是上傳文件的類型
//默認(rèn)上傳文件最大值100k,文件類型為所有文件
//1為圖片jpg?or?gif;0為所有文件
//如果文件大于設(shè)定值,返回代碼0
//如果文件類型錯誤,返回代碼1
//初始化
long?fileMax?=?100000;
string?fileType?=?"0";
string?fileTypet?=?"";
fileMax?=?fmax;
fileType?=?ftype;
if?(files.PostedFile.ContentLength??fileMax)
{
return?"0";
//返回錯誤代碼,結(jié)束程序
}
fileTypet?=?System.IO.Path.GetExtension(files.PostedFile.FileName).ToLower();
if?(fileType?==?"1")
{
if?(fileTypet?!=?".jpg"??fileTypet?!=?".jpeg"??fileTypet?!=?".gif")
{
return?"1";
//返回錯誤代碼,結(jié)束程序
}
}
string?destdir?=?System.Web.HttpContext.Current.Server.MapPath(paths);
string?filename?=?CFun.RandomWord()?+?fileTypet;
string?destpath?=?System.IO.Path.Combine(destdir,?filename);
//檢查是否有名稱重復(fù),如果重復(fù)就在前面加從0開始的數(shù)字
int?i?=?0;
string?tempfilename?=?filename;
while?(System.IO.File.Exists(destpath))
{
//有重復(fù)
tempfilename?=?i.ToString()?+?filename;
destpath?=?System.IO.Path.Combine(destdir,?tempfilename);
i?=?i?+?1;
}
//沒有重復(fù),保存文件
files.PostedFile.SaveAs(destpath);
//返回文件名稱
return?tempfilename;
}
剛剛寫好的,就是PHP保存圖片到MYSQL數(shù)據(jù)庫
!--
CREATE TABLE ccs_image (
id int(4) unsigned NOT NULL auto_increment,
description varchar(250) default NULL,
bin_data longblob,
filename varchar(50) default NULL,
filesize varchar(50) default NULL,
filetype varchar(50) default NULL,
PRIMARY KEY (id)
)
--
HTML
HEAD
TITLE
/TITLE/HEAD
BODY
?php
if (isset($_POST['submit'])) {
$form_description = $_POST['form_description'];
$form_data_name = $_FILES['form_data']['name'];
$form_data_size = $_FILES['form_data']['size'];
$form_data_type = $_FILES['form_data']['type'];
$form_data = $_FILES['form_data']['tmp_name'];
$connect = MYSQL_CONNECT( "localhost", "root","123456" ) or die("不能連接服務(wù)器");
mysql_select_db( image) or die("不能連接數(shù)據(jù)庫");
$data = addslashes(fread(fopen($form_data, r), filesize($form_data)));
$result=MYSQL_QUERY("INSERT INTO ccs_image (description,bin_data,filename,filesize,filetype) VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");
$id= mysql_insert_id();
MYSQL_CLOSE();
} else {
?
center
form method=post action=UPload.php enctype=multipart/form-data
文件描述:
br
input type=text name=form_description size=40
br
INPUT TYPE=hidden name=MAX_FILE_SIZE value=1000000
br
!--File to upload/store in database: --
請選擇上傳文件:
br
input type=file name=form_data size=40
br
input type=submit name=submit value=確定
/form
/center
?php
}
?
/BODY
/HTML
//自己寫限制
div class="daohang"
div class="daohang_title"添加大三平面作品/div
li class="ti"
div class="bd"a href="../main_pingmian_1" target="mainFrame"大三作品/a/div
div class="bd"a href="../main_pingmian_2" target="mainFrame"大二作品/a/div
div class="bd"a href="../main_pingmian_3" target="mainFrame"大一作品/a/div
/li
/divdiv class="daohang"
form nname="form1" method="post" action="pm_cheak.php" onSubmit="return jiancha()" enctype="multipart/form-data" //注意 enctype="multipart/form-data一定要有
div class="daohang_title"請認(rèn)真填寫平面作品的資料/div div class="he"
li class="he_1"創(chuàng)作人/li
li class="he_2"input name="pm_zuozhe" type="text" id="pm_zuozhe" value="" size="8" maxlength="4" //li
/div
div class="he"
li class="he_1"span class="lanmu_title"作品說明/span/li
li class="he_2"input name="pm_text" type="text" id="pm_text" value="" size="30" maxlength="30" / 最多可以輸入15個漢字或30個字母!/li
/div
div class="he"
li class="he_1"連接地址/li
li class="he_2"input name="pm_href" type="text" id="pm_href" value="" size="30" maxlength="30" /
如:;/li
/div
div class="he"
li class="he_1"作品圖片/li
li class="he_2"
label
input type="file" name="pm_images" style="width:220; border:1 solid #6899B7; font-size:9pt; size="14" /label 允許上傳文件類型為:jpg|jpeg|png|pjpeg|gif|bmp
/li
/div
div class="he"
li class="he_1"/li
li class="he_2"
label
input type="submit" name="upload" value="提交" /
/label
label
input type="reset" name="button2" id="button2" value="重置"
/label
input name="date" type="hidden" id="date" value=""
/li
/div
/form/div 程序部分pm_cheak.php: ?
include ("../../../../conn.php");
if ($_POST['upload'] == '提交') { $pm_zuozhe = $_POST[pm_zuozhe];
$pm_text = $_POST[pm_text];
$pm_href = $_POST[pm_href];//一一對應(yīng) $pm_date = date("Y-m-d"); $link=date("YmjHis"); //獲取當(dāng)前時間
//為表單中提交的數(shù)據(jù)重新命名,以當(dāng)前時間和隨機(jī)數(shù)作為名稱,其中使用$_FILES獲取表單中真實(shí)的名稱,使用strstr函數(shù)獲取文件的后綴
$path=$link.mt_rand(1000,9999).strstr($_FILES["pm_images"]["name"],".");
$address="../../../../images/pm_btn/".$path; //定義文件上傳的路徑
move_uploaded_file($_FILES["pm_images"]["tmp_name"],$address); //將文件上傳到指定的文件中
$pm_images="images/pm_btn/".$path; //獲取上傳文件在服務(wù)器中的存儲路徑
//將表單中提交的數(shù)據(jù)存儲到數(shù)據(jù)庫中 $sql = mysql_query("insert into pm(pm_zuozhe,pm_text,pm_href,pm_images,pm_date)values('$pm_zuozhe','$pm_text','$pm_href','$pm_images','$pm_date')");//執(zhí)行插入語句
mysql_close($conn);//關(guān)閉連接
}
echo ("scriptalert('大三平面作品添加成功');window.location.href='add_pm_zuopin.php';/script");
?
meta http-equiv="Content-Type" content="text/html; charset=GBK" / //注意編碼格式
一般都是在數(shù)據(jù)庫中存儲照片文件的路徑,不會直接把照片文件存儲到數(shù)據(jù)庫中。
兩種辦法:1、以char或varchar類型保存圖片的上傳路徑;2、以blob格式把圖片以二進(jìn)制保存在數(shù)據(jù)庫里。建議用第一種至于用不用PDO,全憑喜好,以MySQL完全可以辦到。
網(wǎng)站題目:圖片怎么導(dǎo)到mysql 圖片怎么導(dǎo)到word里
當(dāng)前URL:http://muchs.cn/article42/docodhc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、做網(wǎng)站、品牌網(wǎng)站設(shè)計、用戶體驗(yàn)、App設(shè)計、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)