ASP.NET2.0中将图片上传到Access数据库的代码实例
为了安全和图片内容保护,往往需要把图片存储在数据库里.因为直接把图片存放在硬盘里,很容易被盗走的,所以把图片以二进制流的形式存储在数据里,这样别人便不能轻易地盗链我们的图片了.本文列出将文字和图片上传到Access数据库的方法。
Access数据库代码
<%@ Page Language="C#" EnableViewState="true" %>
<%@ Import Namespace="System.Data.OleDb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Button1_Click( object sender, EventArgs e )
{
System.IO.Stream fileDataStream = FileUpload1.PostedFile.InputStream;
if (fileDataStream.Length < 1)
{
Msg.Text = "请选择文件。";
return;
}
//得到文件大小
int fileLength = FileUpload1.PostedFile.ContentLength;
//创建数组
byte[] fileData = new byte[fileLength];
//把文件流填充到数组
fileDataStream.Read(fileData, 0, fileLength);
//得到文件类型
string fileType = FileUpload1.PostedFile.ContentType;
//构建数据库连接,SQL语句,创建参数
string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Image2Access.mdb");
OleDbConnection myConnection = new OleDbConnection(strCnn);
OleDbCommand command = new OleDbCommand("INSERT INTO Person (PersonName,PersonEmail,PersonSex,PersonImageType,PersonImage)" +
"VALUES (@PersonName,@PersonEmail,@PersonSex,@PersonImageType,@PersonImage)", myConnection);
command.Parameters.AddWithValue("@PersonName",TextBox1.Text);
command.Parameters.AddWithValue("@PersonEmail", "mengxianhui@dotnet.aspx.cc");
command.Parameters.AddWithValue("@paramPersonSex", "男");
command.Parameters.AddWithValue("@PersonImageType", fileType);
command.Parameters.AddWithValue("@PersonImage", fileData);
//打开连接,执行查询
myConnection.Open();
command.ExecuteNonQuery();
myConnection.Close();
Response.Redirect(Request.RawUrl);
}
protected void Page_Load( object sender, EventArgs e )
{
if (!Page.IsPostBack)
{
BindGrid();
}
}
private void BindGrid( )
{
string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ Server.MapPath("Image2Access.mdb");
OleDbConnection myConnection = new OleDbConnection(strCnn);
OleDbCommand myCommand = new OleDbCommand("SELECT * FROM Person", myConnection);
try
{
myConnection.Open();
GridView1.DataSource = myCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
GridView1.DataBind();
}
catch (OleDbException SQLexc)
{
Response.Write("提取数据时出现错误:" + SQLexc.ToString());
}
}
protected string FormatURL( object strArgument )
{
return "ReadImage.aspx?id=" + strArgument.ToString();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>上传文件到数据库</title>
</head>
<body>
<form id="MengXianhui" runat="server">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%#Eval("PersonName") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<%#Eval("PersonEmail") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<%#Eval("PersonSex") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<img src="<%#FormatURL(Eval("PersonID")) %>" /></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<br />
姓名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
照片:<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="上传" OnClick="Button1_Click"></asp:Button>
<p>
<asp:Label ID="Msg" runat="server" ForeColor="Red"></asp:Label></p>
</form>
</body>
</html>
最新文章
- 客户端与服务器端对URL字符编码和解 [05-07]
- 高手过招 ASP.NET中防范SQL注入式攻 [12-25]
- ASP.NET2.0 AJAX中调用服务器Webse [11-29]
- ASP.NET中检测浏览器属性的方法及代 [11-29]
- ASP.NET2.0中Web Parts介绍及使用实 [11-29]
- 如何实现ASP.NET网站个性化的元素及 [11-24]
- 自定义控件把脚本文件编译为内嵌资 [11-24]
- ASP.NET2.0向其它网页传递信息的方 [11-24]
- 组合ASP.NET数据控件构建接口强大的 [11-24]
- Asp.net中创建类似Google自动感应的 [11-24]
推荐文章


热点文章
亲密接触ASP.Net(1-14)----站长强
ASP.NET中常用的优化性能方法详解
HTML图像热区基本介绍及实例代码
ASP.NET1.1中如何实现动态树实例
ASP.NET 2.0 ObjectDataSource控
Asp.Net时间格式转换方法
ASP.NET生成静态网页的方法
编程高手谈ASP.NET状态管理之客户
Asp.net页面之间跳转的三种方法比
ASP.NET的 Session 详解
深入分析编译asp.net 2.0项目到d
ASP.NET状态保存的方法详细介绍
ASP.NET性能优化-数据库方面的选
ASP.NET页面间传值方法大集会
实例:利用AJAX和ASP.NET实现简单
探讨ASP.NET的本质之IIS以及进程
ASP.NET用户控件返回事件的原理及
如何用ASP.NET 2.0主题控制网站外
ASP.NET性能优化-页面及控件
使用ASP.NET AJAX实现幻灯片效果
请慎用ASP.Net的validateRequest
ASP.NET2.0全新增加控件之ImageM
教你如何利用ASP.net编写发送Ema
完美教程:Asp.net如何导出pdf格式
ASP.NET2.0中CSS失效解决方案大集
结合工作经验总结asp.net几个常用
深入探讨ASP.NET实现回调实现的步
ASP.NET中如何实现通过对话框方式
asp.net数据校验部分的封装与应用
.NET用户控件基本使用及如何创建

