如果你想把二進制的數據 比如說圖片文件和HTML文件 直接保存在你的MySQL數據庫 那么這篇文章就是為你而寫的! 我將告訴你怎樣通過HTML表單來儲存這些文件 怎樣訪問和使用這些文件 本文概述 在mysql中建立一個新的數據庫 一個怎樣儲存文件的例子程序 一個怎樣訪問文件的例子程序 在mysql中建立一個新的database 首先 你必須在你的mysql中建立一個新的數據庫 我們將會把那些二進制文件儲存在這個數據庫里 在例子中我會使用下列結構 為了建立數據庫 你必須做下列步驟 進入MySql控制器 輸入命令 create database binary_data; 輸入命令 use binary_data; 輸入命令 CREATE TABLE binary_data ( id INT( ) NOT NULL AUTO_INCREMENT PRIMARY KEY description CHAR( ) bin_data LONGBLOB filename CHAR( ) filesize CHAR( ) filetype CHAR( )); (不能斷行) 如果沒有意外 數據庫 和 表 應該建立好了 一個怎樣儲存文件的例子程序 用這個例子你可以通過Html表單將文件傳輸到數據庫中 store php ?php // store php by Florian Dittmer ? HTML HEADTITLEStore binary data into SQL Database/TITLE/HEAD BODY ?php // 如果提交了表單 代碼將被執行: if ($submit) { // 連接到數據庫 // (你可能需要調整主機名 用戶名和密碼) MYSQL_CONNECT( localhost root password ); mysql_select_db( binary_data ); $data = addslashes(fread(fopen($form_data r ) filesize($form_data))); $result=MYSQL_QUERY( INSERT INTO binary_data (description bin_data filename filesize filetype) VALUES ( $form_description $data $form_data_name $form_data_size $form_data_type ) ); $id= mysql_insert_id(); print pThis file has the following Database ID: b$id/b ; MYSQL_CLOSE(); } else { // 否則顯示儲存新數據的表單 ? form method= post action= ?php echo $PHP_SELF; ? enctype= multipart/form data File Description:br input type= text name= form_description size= INPUT TYPE= hidden name= MAX_FILE_SIZE value= brFile to upload/store in database:br input type= file name= form_data size= pinput type= submit name= submit value= submit /form ?php } ? /BODY /HTML 如果你執行了這個程序 你將會看見一個簡單的Html表單 單擊 瀏覽 選擇一個文件 然后單擊提交 當文件上傳至web服務器之后 程序將會告訴你剛剛上傳的文件的ID 記住這個ID 待會要用的 一個怎樣訪問文件的例子程序 你可以通過這個程序訪問你剛才儲存的文件 ?php // getdata php by Florian Dittmer // 調用方法: getdata php ?id=id if($id) { // 你可能需要調整主機名 用戶名和密碼: @MYSQL_CONNECT( localhost root password ); @mysql_select_db( binary_data ); $query = select bin_data filetype from binary_data where id=$id ; $result = @MYSQL_QUERY($query); $data = @MYSQL_RESULT($result bin_data ); $type = @MYSQL_RESULT($result filetype ); Header( Content type: $type ); echo $data; }; ? 程序必須知道要訪問那個文件 你必須將ID作為一個參數 例如: 一個文件在數據庫中的ID為 你可以這樣調用它: getdata php ?id= 如果你將圖片儲存在數據庫里 你可以向調用圖片一樣調用它 Example: 一個圖片文件在數據庫中的ID為 你可以這樣調用它: img src= getdata php ?id= 怎樣儲存大于 MB的文件: 如果你想儲存大于 MB的文件 你必須對你的程序 PHP設置 SQL設置進行許多修改 下面幾條也許可以幫助你儲存小于 MB的文件 修改 store php 將 MAX_FILE_SIZE 的值改成 修改你的PHP設置 在一般情況下 PHP只允許小于 MB的文件 你必須將max_filesize(在php ini中)的值改成 去掉MYSQL的數據包大小限制 在一般情況下 MYSQL 小于 MB的數據包 你必須用以下參數重啟你的MYSQL /usr/local/bin/safe_mysqld O key_buffer= M O table_cache= O sort_buffer= M O record_buffer= M O max_allowed_packet= M 如果仍然出錯 可能是超時錯誤 如果你通過一個很慢的連接來儲存一個很大的文件 PHP缺省的時間限制為 秒 你可以將max_execution_time(在php ini中)的值改為 lishixinzhi/Article/program/MySQL/201311/29424
創新互聯建站專注于企業成都營銷網站建設、網站重做改版、仁化網站定制設計、自適應品牌網站建設、HTML5、商城網站開發、集團公司官網建設、成都外貿網站建設公司、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為仁化等各大城市提供網站開發制作服務。
你好,很高興回答你的問題。
一般有兩種方式,
一種是將圖片序列化后,將序列化的結果存入數據庫中。使用時在讀出進行反序列化。
另一種是將文件存放到一個位置,將存放的路徑存入數據庫。使用時按照路徑獲取圖片。
如果有幫助到你,請點擊采納。
解決方法一般有兩種:
1、將圖片保存的路徑存儲到數據庫;
2、將圖片以二進制數據流的形式直接寫入數據庫字段中。
以下為具體方法:
一、保存圖片的上傳路徑到數據庫:
string
uppath="";//用于保存圖片上傳路徑
//獲取上傳圖片的文件名
string fileFullname =
this.FileUpload1.FileName;
//獲取圖片上傳的時間,以時間作為圖片的名字可以防止圖片重名
string
dataName =
DateTime.Now.ToString("yyyyMMddhhmmss");
//獲取圖片的文件名(不含擴展名)
string
fileName = fileFullname.Substring(fileFullname.LastIndexOf("\\") +
1);
//獲取圖片擴展名
string type =
fileFullname.Substring(fileFullname.LastIndexOf(".") +
1);
//判斷是否為要求的格式
if (type == "bmp" || type == "jpg" || type == "jpeg"
|| type == "gif" || type == "JPG" || type == "JPEG" || type == "BMP" || type ==
"GIF")
{
//將圖片上傳到指定路徑的文件夾
this.FileUpload1.SaveAs(Server.MapPath("~/upload")
+ "\\" + dataName + "." +
type);
//將路徑保存到變量,將該變量的值保存到數據庫相應字段即可
uppath
= "~/upload/" + dataName + "." +
type;
}
二、將圖片以二進制數據流直接保存到數據庫:
引用如下命名空間:
using
System.Drawing;
using System.IO;
using
System.Data.SqlClient;
設計數據庫時,表中相應的字段類型為iamge
保存:
//圖片路徑
string
strPath = this.FileUpload1.PostedFile.FileName.ToString
();
//讀取圖片
FileStream fs = new System.IO.FileStream(strPath,
FileMode.Open, FileAccess.Read);
BinaryReader br = new
BinaryReader(fs);
byte[] photo =
br.ReadBytes((int)fs.Length);
br.Close();
fs.Close();
//存入
SqlConnection
myConn = new SqlConnection("Data Source=.;Initial Catalog=stumanage;User
ID=sa;Password=123");
string strComm = " INSERT INTO
stuInfo(stuid,stuimage) VALUES(107,@photoBinary
)";//操作數據庫語句根據需要修改
SqlCommand myComm = new SqlCommand(strComm,
myConn);
myComm.Parameters.Add("@photoBinary", SqlDbType.Binary,
photo.Length);
myComm.Parameters["@photoBinary"].Value =
photo;
myConn.Open();
if (myComm.ExecuteNonQuery()
0)
{
this.Label1.Text =
"ok";
}
myConn.Close();
讀取:
...連接數據庫字符串省略
mycon.Open();
SqlCommand
command = new
SqlCommand("select stuimage from stuInfo where stuid=107",
mycon);//查詢語句根據需要修改
byte[] image = (byte[])command.ExecuteScalar
();
//指定從數據庫讀取出來的圖片的保存路徑及名字
string strPath =
"~/Upload/zhangsan.JPG";
string strPhotoPath =
Server.MapPath(strPath);
//按上面的路徑與名字保存圖片文件
BinaryWriter bw = new
BinaryWriter(File.Open(strPhotoPath,FileMode.OpenOrCreate));
bw.Write(image);
bw.Close();
//顯示圖片
this.Image1.ImageUrl
= strPath;
采用這兩種方式可以根據實際需求靈活選擇。
網頁標題:怎么把圖片存到mysql 怎么把圖片存到百度網盤里
轉載注明:http://vcdvsql.cn/article26/ddoeijg.html
成都網站建設公司_創新互聯,為您提供App開發、網站建設、虛擬主機、服務器托管、云服務器、網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯