ASP.NET下上传图片到数据库,并且读出图片的代码(详细版)
在 ASP.NET 中,我们可以使用 C# 代码实现上传图片到数据库,并且读出图片的功能。本文将提供一个完整的攻略,包括如何创建 ASP.NET 项目、如何上传图片到数据库、如何读出图片、如何使用示例代码等内容。
创建 ASP.NET 项目
在开始实现上传图片到数据库,并且读出图片的功能之前,我们需要先创建一个 ASP.NET 项目。以下是一个示例说明,演示如何创建 ASP.NET 项目:
- 打开 Visual Studio。
- 选择“创建新项目”。
- 在“创建新项目”对话框中,选择“ASP.NET Web 应用程序”。
- 输入项目名称,然后单击“创建”按钮。
- 在“新建 ASP.NET Web 应用程序”对话框中,选择“Web 应用程序”,然后单击“创建”按钮。
- 等待 Visual Studio 创建项目。
上传图片到数据库
在 ASP.NET 中,我们可以使用 C# 代码实现上传图片到数据库的功能。以下是一个示例说明,演示如何上传图片到数据库:
- 在 ASP.NET 项目中,打开 Default.aspx 页面。
- 在 Default.aspx 页面中添加以下代码:
```html
```
在上面代码中,我们首先添加了一个 FileUpload 控件和一个 Button 控件。当用户单击 Button 控件时,将触发 Button1_Click 事件。
- 在 Default.aspx.cs 页面中添加以下代码:
csharp
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
byte[] imageData = new byte[FileUpload1.PostedFile.ContentLength];
HttpPostedFile image = FileUpload1.PostedFile;
image.InputStream.Read(imageData, 0, FileUpload1.PostedFile.ContentLength);
string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand("INSERT INTO Images (ImageData) VALUES (@ImageData)", connection);
command.Parameters.AddWithValue("@ImageData", imageData);
connection.Open();
command.ExecuteNonQuery();
connection.Close();
}
Response.Write("图片上传成功!");
}
else
{
Response.Write("请选择要上传的图片!");
}
}
在上面的代码中,我们首先判断用户是否选择了要上传的图片。如果用户选择了要上传的图片,我们将获取图片的二进制数据,并将数据保存到数据库中。如果用户没有选择要上传的图片,我们将输出“请选择要上传的图片!”的提示信息。
读出图片
在 ASP.NET 中,我们可以使用 C# 代码实现读出图片的功能。以下是一个示例说明,演示如何读出图片:
- 在 ASP.NET 中,添加以下引用:
csharp
using System.Data;
using System.Data.SqlClient;
using System.IO;
- 在 Default.aspx 页面中添加以下代码:
```html
```
在上面的代码中,我们添加了一个 GridView 控件,用于显示从数据库中读出的图片。
- 在 ImageHandler.ashx.cs 页面中添加以下代码:
```csharp
public class ImageHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
int imageID = Convert.ToInt32(context.Request.QueryString["ImageID"]);
string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand("SELECT ImageData FROM Images WHERE ImageID = @ImageID", connection);
command.Parameters.AddWithValue("@ImageID", imageID);
connection.Open();
SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
if (reader.Read())
{
context.Response.BinaryWrite((byte[])reader["ImageData"]);
}
reader.Close();
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
```
在上面的代码中,我们首先获取 ImageID 参数,并使用 SqlCommand 对象从数据库中检索图片的二进制数据。然后,我们将二进制数据写入到 HttpContext.Response 对象中,以便在浏览器中显示图片。
示例说明
以下是两个示例说明,演示如何在 ASP.NET 中实现上传图片到数据库,并且读出图片的功能:
示例1:上传图片到数据库,并且读出图片
在 ASP.NET 中上传图片到数据库,并且读出图片,我们可以按照以下步骤操作:
- 创建 ASP.NET 项目
参考上文中的步骤,创建一个 ASP.NET 项目。
- 上传图片
在 Default.aspx 页面中添加上传图片的代码,参考上文中的步骤。
- 读出图片
在 ImageHandler.ashx.cs 页面中添加读出图片的代码,参考上文中的步骤。
- 运行项目
在 Visual Studio 中,单击“调试”菜单,然后单“启动调试”按钮,运行项目。
- 上传图片
在浏览器中,打开上传图片的页面,选择要上传的图片,然后单击“上传”按钮。
- 查看上传的图片
在浏览器中,查看上传的图片是否正确显示在 GridView 控件中。
- 查看读出的图片
在浏览器中,单击 GridView 控件中的图片,查看读出的图片是否正确显示在浏览器中。
示例2:上传图片到数据库,并且读出图片(带有数据验证)
在 ASP.NET 中上传图片到数据库,并且读出图片,我们可以按照以下步骤操作:
- 创建 ASP.NET 项目
参考上文中的步骤,创建 ASP.NET 项目。
- 上传图片
在 Default.aspx 页面中添加上传图片的代码,参考上文中的步骤。
- 读出图片
在 ImageHandler.ashx.cs 页面中添加读出图片的代码,参考上文中的步骤。在读出图片之前,我们可以添加数据验证的代码,例如:
sharp
if (string.IsNullOrEmpty(context.Request.QueryString["ImageID"]))
{
context.Response.Write("ImageID 参数不能为空!");
return;
}
在上面的代码中,我们首先判断 ImageID 参数是否为空。如果 ImageID 参数为空,我们将输出“ImageID 参数不能为空!”的提示信息,并退出读出图片的操作。
- 运行项目
在 Visual Studio 中,单击“调试”菜单,然后单击“启动调试”按钮,运行项目。
- 上传图片
在浏览器中,打开上传图片的页面,选择要上传的图片,然后单击“上传”按钮。
- 查看上传的图片
在浏览器中,查看上传的图片是否正确显示在 GridView 控件中。
- 查看读出的图片
在浏览器中,单击 GridView 控件中的图片,查看读出的图片是否正确显示在浏览器中。如果 ImageID 参数为空,我们将输出“ImageID 参数不能为空!”的提示信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ASP.NET下上传图片到数据库,并且读出图片的代码(详细版) - Python技术站