分類: 電腦/網路蠢如 >> 程序設計 >> 其他編程語言
解析:
的:
private void btnUpload_Click(object sender, System.EventArgs e)
{
得到用戶要上傳的文件名
string strFilePathName = loFile.PostedFile.FileName;
string strFileName = Path.GetFileName(strFilePathName);
int FileLength = loFile.PostedFile.ContentLength;
if(FileLength<=0)
return;
try
{上傳文件
Byte[] FileByteArray = new Byte[FileLength]; 圖象文件臨時儲存Byte數組
Stream StreamObject = loFile.PostedFile.InputStream; 建立數據流對像
讀取圖襪卜象文件數據告檔穗,FileByteArray為數據儲存體,0為數據指針位置、FileLnegth為數據長度
StreamObject.Read(FileByteArray,0,FileLength);
建立SQL Server鏈接
string strCon = System.Configuration.ConfigurationSettings.AppSettings["DSN"];
SqlConnection Con = new SqlConnection(strCon);
String SqlCmd = "INSERT INTO ImageStore (ImageData, ImageContentType, ImageDescription, ImageSize) VALUES (@Image, @ContentType, @ImageDescription, @ImageSize)";
SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
CmdObj.Parameters.Add("@Image",SqlDbType.Binary, FileLength).Value = FileByteArray;
CmdObj.Parameters.Add("@ContentType", SqlDbType.VarChar,50).Value = loFile.PostedFile.ContentType; 記錄文件類型
把其它單表數據記錄上傳
CmdObj.Parameters.Add("@ImageDescription", SqlDbType.VarChar,200).Value = tbDescription.Text;
記錄文件長度,讀取時使用
CmdObj.Parameters.Add("@ImageSize", SqlDbType.BigInt,8).Value = FileLength;
Con.Open();
CmdObj.ExecuteNonQuery();
Con.Close();
跳轉頁面
Response.Redirect("ShowAllx");
}
catch
{
}
}
2.DataGrid控制項綁定數據
程序代碼
private void Page_Load(object sender, System.EventArgs e)
{
string strCon = System.Configuration.ConfigurationSettings.AppSettings["DSN"];
SqlConnection con = new SqlConnection(strCon);
SqlDataAdapter da = new SqlDataAdapter("Select * from ImageStore",con);
DataSet ds = new DataSet();
da.Fill(ds,"image");
dgShow.DataSource = ds.Tables["image"].DefaultView;
dgShow.DataBind();
}
3.顯示資料庫圖片數據
程序代碼
private void Page_Load(object sender, System.EventArgs e)
{
int ImgID = Convert.ToInt32(Request.QueryString["ID"]); ID為圖片ID
建立資料庫鏈接
string strCon = System.Configuration.ConfigurationSettings.AppSettings["DSN"];
SqlConnection Con = new SqlConnection(strCon);
String SqlCmd = "SELECT * FROM ImageStore WHERE ImageID = @ImageID";
SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
CmdObj.Parameters.Add("@ImageID", SqlDbType.Int).Value = ImgID;
Con.Open();
SqlDataReader SqlReader = CmdObj.ExecuteReader();
SqlReader.Read();
Response.ContentType = (string)SqlReader["ImageContentType"];設定輸出文件類型
輸出圖象文件二進制數制
Response.OutputStream.Write((byte[])SqlReader["ImageData"], 0, (int)SqlReader["ImageSize"]);
Response.End();
也可以保存為圖像
FileStream fs = new FileStream(@"C:\aa.BMP", FileMode.OpenOrCreate, FileAccess.Write);
fs.Write((byte[])SqlReader["ImageData"], 0,(int)SqlReader["ImageSize"]);
fs.Close();
Con.Close();
}
asp的:
ASP圖片存入資料庫源程序
寫圖片到資料庫:<%
response.buffer=true
formsize=request.totalbytes
formdata=request.binaryread(formsize)
bncrlf=chrB(13) & chrB(10)
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(formdata,bncrlf & bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
mydata=midb(formdata,datastart,dataend)
Dim Conn
Set Conn=Server.CreateObject("adodb.connection")
Conn.Open strConn
set rec=server.createobject("ADODB.recordset")
rec.Open "SELECT * FROM images order by id desc",Conn,1,3
rec.addnew
rec("images").appendchunk mydata
rec.update
rec.close
set rec=nothing
set connGraph=nothing
%>
從資料庫讀圖片:
<%
Dim Conn
Set Conn=Server.CreateObject("adodb.connection")
Conn.Open strConn
set rec=server.createobject("ADODB.recordset")
strsql="select images from images where id=" & trim(request("id"))
rec.open strsql,Conn,1,1
Response.ContentType = "img/*"
Response.BinaryWrite rec("images").getChunk(7500000)
%>
註:圖片存資料庫是以二進制存的,在讀寫圖片時文本和圖片只能分開保存。
2. 資料庫能存圖片嗎
問題一:資料庫怎樣可以將圖片放到裡面 首先肯定一點,資料庫中是可以放圖片數據的!但是這樣的話,數據體積會很龐大,當然最好還是把圖片放到文件夾中,數據只用來存放圖片路徑,不過最好是存放相對路徑,應該以後可能設計到圖片單獨放在另一台伺服器上,或換了文件夾。
問題二:SQL資料庫中能存照片嗎? 圖片完全可以存放,但是在資料庫中不能以select * from a進行查詢
但是在相對應得c#、Java中可以查詢
是以二進制保存的。
資料庫,只要是抽象出來的數據,都可以保存。
而已不能保褲姿存的,就是實體,像處啊、鞋子啊、男朋陵橋友啊都不姓
問題三:mysql資料庫可以存圖片嗎? 可以。存圖片的列需要設置成BLOB、MEDIUMBLOB或LONGBLOB等數據類型。
但是以前基本上不會把圖片直接存在資料庫里,因為資料庫里的數據是為了用來胡汪絕快速分析、快速存取的,圖片數據在mysql里既不能建立索引也不能和其他數據一起分析,存取速度和讀寫磁碟也沒什麼區別,每次備份、導入導出資料庫時還增加了數據量,降低了效率。所以一般都是把圖片存在系統里,然後把圖片的存放路徑放在資料庫里。
問題四:圖片如何存入資料庫 第一種方式:保存圖片路徑至資料庫中
第二種方式:數據插入相應表中,參數類型為byte[]
例如:
sql:insert into table(imageColumn) values (@image);
其中@image參數值為byte[]類型的變數
問題五:圖片如何存放在oracle資料庫 測試可行。這只是核心Class文件代碼,你要是弄不出來,就再聯系我,我再把整個項目給你。這是把圖片真個放到資料庫
package .;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Scanner;
import oracle.sql.BLOB;
public class Insert {
Scanner sc =new Scanner(System.in);
@SuppressWarnings(deprecation)
public int insertbinary(String pname,String src1){
Connection con = null;
String sql = insert into test values(?,?);
String sql1 =update test set image=? where pname=?;
int res = 0;
try {
con=BaseDAO.getConnection();
con.setAutomit(false);
PreparedStatement pstm = con.prepareStatement(sql);
pstm.setString(1, pname);
EMPTY_BLOB和EMPTY_CLOB返回一個空的LOB定位器,
可以用來初始化一個LOB變數,或在INSERT或UPDATE語句,
初始化LOB列或屬性為空。 EMPTY表示LOB初始化,但不填充數據。
pstm.setBlob(2, oracle.sql.BLOB.empty_lob());
pstm.executeUpdate();
pstm.close();
pstm = con.prepareStatement(select * from test where pname=?);
pstm.setString(1, pname);
ResultSet rs = pstm.executeQuery();
rs.next();
BLOB blob = (BLOB) rs.getBlob(2);
OutputStream os = blob.getBinaryOutputStream();
FileInputStream fi = new FileInputStream(src1);
byte[] buff = new byte[1024];
int len = fi.read(buff);
while (len != -1) {
os.write(buff);
len = fi.read(buff);
}
pstm = con.prepareStatement(sql1);
pstm.setBlob(1,......>>
問題六:如何將圖片儲存在MySQL資料庫里 通常對用戶上傳的圖片需要保存到資料庫中。解決方法一般有兩種:一種是將圖片保存的路徑存儲到資料庫;另一種是將圖片以二進制數據流的形式直接寫入資料庫欄位中。以下為具體方法:
一、保存圖片的上傳路徑到資料庫:
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......>>
問題七:如何在資料庫中存儲圖片文件 解決方法一般有兩種:
一種是將圖片保存的路徑存儲到資料庫;
另一種是將圖片以二進制數據流的形式直接寫入資料庫欄位中。
問題八:如何將圖片存到資料庫 通常對用戶上傳的圖片需要保存到資料庫中。解決方法一般有兩種:一種是將圖片保存的路徑存儲到資料庫;另一種是將圖片以二進制數據流的形式直接寫入資料庫欄位中。以下為具體方法:
一、保存圖片的上傳路徑到資料庫:
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......>>
問題九:怎樣資料庫access保存jpg圖片 只有兩種方法
1.存圖片地址,圖片放伺服器的一個文件夾里
2.存圖片的數據,也就是二進制流
既然第一種你說不行 那隻能第二種了。
我只說一下思路,代碼網上找一下,多的很,也不麻煩1.資料庫欄位類型為image(sqlserver的是image,不知道access的是不是)
2.把圖片文件序列化 放到一個byte[]數組里,然後存到資料庫
顯示的時候:
1.單獨在一個頁面讀出圖片的內容到一個byte[]數組
2.用response把這段二進制輸出
3.在要引用的地方,比如你的image控制項,把引用的地址指向這個頁面就行了
問題十:如何像資料庫中保存圖片? 一般圖像是不保存在資料庫的.而是先將圖片放在工程下的某個文件夾中,將圖片所在的工程文件路徑存在資料庫中,當程序載入圖片的時候,從資料庫中讀取圖片的路徑,然後根據路徑在工程的文件夾中讀取圖片文件
3. 如何在sql server中存儲圖片
1、首先可以存儲圖片鏈接,設置圖片鏈接欄位,如下圖所示。