如题所述
第1个回答 2022-09-29
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
解析:
的:
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)
%>
注:图片存数据库是以二进制存的,在读写图片时文本和图片只能分开保存。
解析:
的:
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)
%>
注:图片存数据库是以二进制存的,在读写图片时文本和图片只能分开保存。