在一个ASP.Net页中实现上传照片并存入数据库,上传后显示所上传的照片
2009-02-23 15:41
543 查看
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
#region 测试写入
if (!FileUpload1.HasFile)
{
Response.Write("请选择图片");
}
string fileEx = System.IO.Path.GetExtension(this.FileUpload1.FileName); //获取图片扩展名
if (fileEx != ".gif" && fileEx != ".jpg" && fileEx != ".jpeg" && fileEx!= ".bmp")
{
Response.Write("只能上传图片");
}
else
{
// ImageType 有用,读取图片的时候需要
int imgSize = this.FileUpload1.PostedFile.ContentLength; //图片大小 (字节)
string imgType = this.FileUpload1.PostedFile.ContentType; //图片类型
string imgPath = this.FileUpload1.PostedFile.FileName; //获取图片路径
string imgName = this.FileUpload1.FileName; //获取图片名字
int imgLength = this.FileUpload1.FileName.Length; //获取图片长度
if (imgLength <= 0)//判断是否有图片
return;
Byte[] imgByte = new Byte[imgSize]; //用图片的长度来初始化一个字节数组存储临时的图片文件
Stream stream = this.FileUpload1.PostedFile.InputStream; //建立文件流对象
stream.Read(imgByte, 0, imgSize);// 读取图片数据到临时存储体imgByte,0为数据指针位置,fileLength为数据长度
//this.FileUpload1.FileBytes
try
{
string connection = ConfigurationManager.ConnectionStrings["DBConn"].ConnectionString;
SqlConnection sqlconn = new SqlConnection(connection);
sqlconn.Open();
string sqlcmd = "insert into Image values (@ImageType,@ImageData,@ImageTitle)";
SqlCommand sqc = new SqlCommand(sqlcmd, sqlconn);
sqc.Parameters.Add("@ImageType", SqlDbType.VarChar, 50).Value = imgType;
sqc.Parameters.Add("@ImageData", SqlDbType.Image, imgSize).Value = this.FileUpload1.FileBytes;// imgByte;//将二进制的图片赋值给@ImageData
sqc.Parameters.Add("@ImageTitle", SqlDbType.VarChar, 50).Value = imgName;
int result = sqc.ExecuteNonQuery();
sqlconn.Close();
if (result != 0)
{
Response.Write("OK");
}
else
{
Response.Write("NO");
}
}
catch (Exception ex)
{
Response.Write(ex.StackTrace);
}
finally
{
}
}
#endregion
}
}
这个是存进去的
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Data.SqlClient;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
#region 测试读取
string sqlCmd = "select top 1 * from Image order by imageID desc";
string connection = ConfigurationManager.ConnectionStrings["DBConn"].ConnectionString;
SqlConnection sqlconn = new SqlConnection(connection);
try
{
sqlconn.Open();
SqlCommand sqc = new SqlCommand(sqlCmd, sqlconn);
//Response.ContentType = "image/pjpeg";
using (SqlDataReader sdr = sqc.ExecuteReader())
{
while (sdr.Read())
{
//Response.ContentType = sdr["imageType"].ToString();
Response.Clear();
Response.BinaryWrite((byte[])sdr["imageData"]);
}
}
//sdr.Close();
//sqlconn.Close();
}
catch (Exception ex)
{
Response.Write(ex.StackTrace);
}
finally
{
sqlconn.Close();
}
#endregion
}
}
}
这个是取出来的,在页面要放一个容器去接收图片!
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
#region 测试写入
if (!FileUpload1.HasFile)
{
Response.Write("请选择图片");
}
string fileEx = System.IO.Path.GetExtension(this.FileUpload1.FileName); //获取图片扩展名
if (fileEx != ".gif" && fileEx != ".jpg" && fileEx != ".jpeg" && fileEx!= ".bmp")
{
Response.Write("只能上传图片");
}
else
{
// ImageType 有用,读取图片的时候需要
int imgSize = this.FileUpload1.PostedFile.ContentLength; //图片大小 (字节)
string imgType = this.FileUpload1.PostedFile.ContentType; //图片类型
string imgPath = this.FileUpload1.PostedFile.FileName; //获取图片路径
string imgName = this.FileUpload1.FileName; //获取图片名字
int imgLength = this.FileUpload1.FileName.Length; //获取图片长度
if (imgLength <= 0)//判断是否有图片
return;
Byte[] imgByte = new Byte[imgSize]; //用图片的长度来初始化一个字节数组存储临时的图片文件
Stream stream = this.FileUpload1.PostedFile.InputStream; //建立文件流对象
stream.Read(imgByte, 0, imgSize);// 读取图片数据到临时存储体imgByte,0为数据指针位置,fileLength为数据长度
//this.FileUpload1.FileBytes
try
{
string connection = ConfigurationManager.ConnectionStrings["DBConn"].ConnectionString;
SqlConnection sqlconn = new SqlConnection(connection);
sqlconn.Open();
string sqlcmd = "insert into Image values (@ImageType,@ImageData,@ImageTitle)";
SqlCommand sqc = new SqlCommand(sqlcmd, sqlconn);
sqc.Parameters.Add("@ImageType", SqlDbType.VarChar, 50).Value = imgType;
sqc.Parameters.Add("@ImageData", SqlDbType.Image, imgSize).Value = this.FileUpload1.FileBytes;// imgByte;//将二进制的图片赋值给@ImageData
sqc.Parameters.Add("@ImageTitle", SqlDbType.VarChar, 50).Value = imgName;
int result = sqc.ExecuteNonQuery();
sqlconn.Close();
if (result != 0)
{
Response.Write("OK");
}
else
{
Response.Write("NO");
}
}
catch (Exception ex)
{
Response.Write(ex.StackTrace);
}
finally
{
}
}
#endregion
}
}
这个是存进去的
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Data.SqlClient;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
#region 测试读取
string sqlCmd = "select top 1 * from Image order by imageID desc";
string connection = ConfigurationManager.ConnectionStrings["DBConn"].ConnectionString;
SqlConnection sqlconn = new SqlConnection(connection);
try
{
sqlconn.Open();
SqlCommand sqc = new SqlCommand(sqlCmd, sqlconn);
//Response.ContentType = "image/pjpeg";
using (SqlDataReader sdr = sqc.ExecuteReader())
{
while (sdr.Read())
{
//Response.ContentType = sdr["imageType"].ToString();
Response.Clear();
Response.BinaryWrite((byte[])sdr["imageData"]);
}
}
//sdr.Close();
//sqlconn.Close();
}
catch (Exception ex)
{
Response.Write(ex.StackTrace);
}
finally
{
sqlconn.Close();
}
#endregion
}
}
}
这个是取出来的,在页面要放一个容器去接收图片!
相关文章推荐
- 用asp.net实现将上传的图片变小存入数据库!(暑假里就开始想做的,很兴奋了)
- asp.net FileUpload 控件上传文件 以二进制的形式存入数据库并将图片显示出来
- 用asp.net实现将上传的图片变小存入数据库
- 用asp.net实现将上传的图片变小存入数据库
- 用asp.net实现将上传的图片存入数据库!
- 用asp.net实现将上传的图片变小存入数据库
- 用asp.net实现将上传的图片变小存入数据库!(暑假里就开始想做的,很兴奋了)
- ASP.Net 图片存入数据库的实现代码
- Asp.Net 无刷新文件上传并显示进度条的实现方法及思路
- ASP.NET实现文件的上传与下载(包括用数据库存取文件)
- ASP.NET 上传图片至数据库并读取图片显示
- ASP + ACCESS 上传图片到数据库与将图片读出数据库显示之实现(详细版)
- asp.net实现上传图片显示本地绝对路径图片
- asp.net mvc 2.0 简单的上传图片到数据库和显示图片
- asp.net 自定义控件实现无刷新上传图片,立即显示缩略图,保存图片缩略图
- ASP.NET MVC实现图片上传、图片预览显示
- asp.net 自定义控件实现无刷新上传图片,立即显示缩略图,保存图片缩略图
- ASP.NET控件FileUpload实现Excel文件内容上传到数据库
- ASP.NET实现图片以二进制的形式存入数据库