sql資料庫存儲圖片路徑
A. 我用的是sql資料庫 ,圖片是存圖片,還是存圖片的路徑,哪個好。
SQL SERVER的資料庫吧?個人建議存圖片的路徑。因為很多開發都是這么做的。不僅是出於習慣,而且保存圖片路徑,很更快定位。而如果你保存圖片,估計這個時間花費是很大的,查詢速度肯定是會很慢的。保存成路徑,查詢到以後,直接過去調用,這樣省時又省力。而且現在很多網站用的圖片都是大容量的高清圖片,如果存成圖片,你想想資料庫要有多大呢?
B. 怎麼樣把圖片存放到SQL SERVER 資料庫中
通常對用戶上傳的圖片需要保存到資料庫中。解決方法一般有兩種:一種是將圖片保存的路徑存儲到資料庫;另一種是將圖片以二進制數據流的形式直接寫入資料庫欄位中。以下為具體方法:
一、保存圖片的上傳路徑到資料庫:
string uppath="";//用於保存圖片上傳路徑
//獲取上傳圖片的文件名
string fileFullname = this.FileUpload1.FileName;
//獲取圖片上傳的時間,以時間作為圖片的名字可以防止圖片重名
string dataName = DateTime.Now.ToString("MMddhhmmss");
//獲取圖片的文件名(不含擴展名)
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;
採用倆種方式可以根據實際需求靈活選擇。
C. mysql資料庫怎麼用sql指令存入圖片路徑
在資料庫中,創建一張data表,用於測試。
D. 如何在sql server中存儲圖片
1、首先可以存儲圖片鏈接,設置圖片鏈接欄位,如下圖所示。
E. sql資料庫中如何存放圖片相對路徑(不用代碼)
那具體還要看你文件訪問圖片的代碼在哪一層目錄,假如是在根目錄,這樣寫就可以了'./image/1.jpg',圖片在sql的欄位設置為字元串類型,把路徑作為字元串寫進資料庫就可以了
F. sql保存圖片路徑,及客戶端讀取
sql保存文件或者圖片
1.
用byte[]
二進制流保存
在轉換成文件。
2.
直接保存文件路徑。
客戶端如何顯示
主要是對路徑的一個操作,看看文件尾綴轉換成圖標,文件名稱。
在進行下載之類的操作
G. SQL中怎麼存圖片路徑
不知道說的對不對。
如果你是想在資料庫中保存圖片的路徑的話,完全可以用varchar類型的,然後保存一個項目中圖片的相對路徑即可。
但如果你是想把整個圖片都保存到資料庫的話那就只得用image類型了。
建議不要在資料庫中保存圖片,那樣讀寫很費資源。
H. SQL資料庫用甚麼欄位存儲圖片路徑
當然是用VARCHAR來作為存儲路徑的欄位類型咯,大小應該設為
255
。
char是字元型的,要自己指定大小
text是用來存放文本的,大小由系統指定為16,但是文本實際上不是
存儲在表中,而是存在系統分配的頁中,這些用戶不用管
網路上找到的資料
I. sql資料庫中如何存放圖片相對路徑(不用代碼)
1、在打開【SQL Server Managemenet Studio】窗口,在【對象資源管理器】窗口依次站看【資料庫】——【新建的資料庫】節點。
J. SQL資料庫中圖片的地址如何存儲的
算了,你問這些問題真難答呢,首先你也不說是C/s程序還是B/s程序,總就一個要代碼,總不成連資料庫聯接什麼的都要寫出來吧。也不知道你要的是哪一種方式,難道別人幫你還得兩種都得完完整整寫給你嗎?
這是我以前寫的你看一下不懂直接加QQ;
1、首先從文件中讀取要加到資料庫中的圖片,將它轉換成byte[]類型,這樣就可以加到資料庫中去了。
FileStream fs = new FileStream(openPicForRead.FileName, FileMode.OpenOrCreate, FileAccess.Read);
MyData = new byte[fs.Length];
fs.Read(MyData, 0, Convert.ToInt32(fs.Length));
fs.Close();
2、從資料庫中讀取出來並在PictrueBox中顯示,用下面這種方法比較重要,如果用FileForm生成臨時文件的話如果打開第二次時就會提示文件正在使用。注意一定要用MemoryStream。
byte[] readimage = new byte[0];
int piccount = DataBind.Tables["T_Equipment"].Rows.Count;
readimage = (byte[])DataBind.Tables["T_Equipment"].Rows[piccount-1]["Photo"];
if (readimage.Length !=0)
{
MemoryStream stmBLOBData = new MemoryStream(readimage);
picEquipment.Image = Image.FromStream(stmBLOBData);
}
3、將PictureBox.Image加到資料庫中,為什麼要提到這一點呢?因為在修改一條記錄時可能不會修改它的圖像欄位,所以只能把它的顯示結果重新寫回去,當然也可以在Update時不修改它。
MyData = new byte[0];
MemoryStream ms=new MemoryStream();
PictureBox1.Image.Save(ms,ImageFormat.Jpeg);
MyData = ms.GetBuffer();
最後將MyData寫回去。
第三條的命名空間為using System.Drawing.Imaging;