创建一个表ImageNO int类型 ; ImageContent image类型 FileUpload1:一个VS2005的传输图片控件protected void Button1_Click(object sender, EventArgs e)
{
int intFile = FileUpload1.PostedFile.ContentLength;//获取上传文件大小
byte[] PhotoArray = new byte[intFile];
SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=MyData;Integrated Security=True");
conn.Open(); string strSQL = "";
strSQL = "Insert into dmcimage(ImageContent) values(@ImageContent)";
SqlCommand cmd = new SqlCommand(strSQL, conn);
cmd.Parameters.Add("@ImageContent", SqlDbType.Image);
cmd.Parameters["@ImageContent"].Value = PhotoArray;
cmd.ExecuteNonQuery();
conn.Close();
}问题1.上面这一段能把图片放进数据库吧?我测试时可能放进去了,在ImageContent下显示是《二进制数据》,应该存进去了吧?问题2.在 protected void Page_Load(object sender, EventArgs e)
{
}
中编写一个读出图片的程序,怎么写?
{
int intFile = FileUpload1.PostedFile.ContentLength;//获取上传文件大小
byte[] PhotoArray = new byte[intFile];
SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=MyData;Integrated Security=True");
conn.Open(); string strSQL = "";
strSQL = "Insert into dmcimage(ImageContent) values(@ImageContent)";
SqlCommand cmd = new SqlCommand(strSQL, conn);
cmd.Parameters.Add("@ImageContent", SqlDbType.Image);
cmd.Parameters["@ImageContent"].Value = PhotoArray;
cmd.ExecuteNonQuery();
conn.Close();
}问题1.上面这一段能把图片放进数据库吧?我测试时可能放进去了,在ImageContent下显示是《二进制数据》,应该存进去了吧?问题2.在 protected void Page_Load(object sender, EventArgs e)
{
}
中编写一个读出图片的程序,怎么写?
imgvies.aspx文件:
<%@ Page language="c#" Codebehind="imgview.aspx.cs" AutoEventWireup="false" Inherits="study.uploadimage.imgview" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>imgview</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
</body>
</HTML>codebehind文件:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;namespace study.uploadimage
{
/// <summary>
/// imgview 的摘要说明。
/// </summary>
public class imgview : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
SqlConnection myDSN = new SqlConnection(Application["Test_Conn"].ToString());
myDSN.Open(); int imgid = int.Parse(Request.QueryString["id"]);
string sqlText = "SELECT img_name, img_data, img_contenttype FROM image where img_pk=" + imgid;
Trace.Write(sqlText);
SqlCommand MyCommand = new SqlCommand (sqlText, myDSN);
SqlDataReader dr =MyCommand.ExecuteReader();
if(dr.Read())
{
Response.ContentType = (dr["img_contenttype"].ToString());
Response.BinaryWrite((byte[])dr["img_data"]);
}
myDSN.Close();
} #region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
}
}
HttpPostedFile UpFile = UP_File.PostedFile;
FileLength = UpFile.ContentLength; try
{
if (FileLength == 0)
{
lblMessage.Text = "<b>请选择您要上传的文件</b>";
}
else
{
Byte[] FileByteArray = new byte[FileLength];
Stream StreamObj = UpFile.InputStream;
StreamObj.Read(FileByteArray, 0, FileLength); SqlConnection Con = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
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 = UpFile.ContentType;//记录文件类型
CmdObj.Parameters.Add("@ImageDescription", SqlDbType.VarChar, 200).Value = txtDescription.Text;
CmdObj.Parameters.Add("@ImageSize", SqlDbType.BigInt, 8).Value = UpFile.ContentLength;
Con.Open();
CmdObj.ExecuteNonQuery();
Con.Close();
lblMessage.Text = "<p><b>OK!你已经成功上传你的图片</b>";//提示上传成功 }
}
catch (Exception ex)
{
lblMessage.Text = ex.Message.ToString();
}
int ImgID = Convert.ToInt32(Request.QueryString["id"]); SqlConnection Con = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]); String SqlCmd = "SELECT * FROM A WHERE ID = @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,Convert.ToInt32(SqlReader["ImageSize"]));
Response.BufferOutput = true;
Con.Close(); }
参考