ASP.NET下上传图片到数据库,并且读出图片的代码(详细版)

ASP.NET下上传图片到数据库,并且读出图片的代码(详细版)

在 ASP.NET 中,我们可以使用 C# 代码实现上传图片到数据库,并且读出图片的功能。本文将提供一个完整的攻略,包括如何创建 ASP.NET 项目、如何上传图片到数据库、如何读出图片、如何使用示例代码等内容。

创建 ASP.NET 项目

在开始实现上传图片到数据库,并且读出图片的功能之前,我们需要先创建一个 ASP.NET 项目。以下是一个示例说明,演示如何创建 ASP.NET 项目:

  1. 打开 Visual Studio。
  2. 选择“创建新项目”。
  3. 在“创建新项目”对话框中,选择“ASP.NET Web 应用程序”。
  4. 输入项目名称,然后单击“创建”按钮。
  5. 在“新建 ASP.NET Web 应用程序”对话框中,选择“Web 应用程序”,然后单击“创建”按钮。
  6. 等待 Visual Studio 创建项目。

上传图片到数据库

在 ASP.NET 中,我们可以使用 C# 代码实现上传图片到数据库的功能。以下是一个示例说明,演示如何上传图片到数据库:

  1. 在 ASP.NET 项目中,打开 Default.aspx 页面。
  2. 在 Default.aspx 页面中添加以下代码:

```html


```

在上面代码中,我们首先添加了一个 FileUpload 控件和一个 Button 控件。当用户单击 Button 控件时,将触发 Button1_Click 事件。

  1. 在 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# 代码实现读出图片的功能。以下是一个示例说明,演示如何读出图片:

  1. 在 ASP.NET 中,添加以下引用:

csharp
using System.Data;
using System.Data.SqlClient;
using System.IO;

  1. 在 Default.aspx 页面中添加以下代码:

```html










```

在上面的代码中,我们添加了一个 GridView 控件,用于显示从数据库中读出的图片。

  1. 在 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 中上传图片到数据库,并且读出图片,我们可以按照以下步骤操作:

  1. 创建 ASP.NET 项目

参考上文中的步骤,创建一个 ASP.NET 项目。

  1. 上传图片

在 Default.aspx 页面中添加上传图片的代码,参考上文中的步骤。

  1. 读出图片

在 ImageHandler.ashx.cs 页面中添加读出图片的代码,参考上文中的步骤。

  1. 运行项目

在 Visual Studio 中,单击“调试”菜单,然后单“启动调试”按钮,运行项目。

  1. 上传图片

在浏览器中,打开上传图片的页面,选择要上传的图片,然后单击“上传”按钮。

  1. 查看上传的图片

在浏览器中,查看上传的图片是否正确显示在 GridView 控件中。

  1. 查看读出的图片

在浏览器中,单击 GridView 控件中的图片,查看读出的图片是否正确显示在浏览器中。

示例2:上传图片到数据库,并且读出图片(带有数据验证)

在 ASP.NET 中上传图片到数据库,并且读出图片,我们可以按照以下步骤操作:

  1. 创建 ASP.NET 项目

参考上文中的步骤,创建 ASP.NET 项目。

  1. 上传图片

在 Default.aspx 页面中添加上传图片的代码,参考上文中的步骤。

  1. 读出图片

在 ImageHandler.ashx.cs 页面中添加读出图片的代码,参考上文中的步骤。在读出图片之前,我们可以添加数据验证的代码,例如:

sharp
if (string.IsNullOrEmpty(context.Request.QueryString["ImageID"]))
{
context.Response.Write("ImageID 参数不能为空!");
return;
}

在上面的代码中,我们首先判断 ImageID 参数是否为空。如果 ImageID 参数为空,我们将输出“ImageID 参数不能为空!”的提示信息,并退出读出图片的操作。

  1. 运行项目

在 Visual Studio 中,单击“调试”菜单,然后单击“启动调试”按钮,运行项目。

  1. 上传图片

在浏览器中,打开上传图片的页面,选择要上传的图片,然后单击“上传”按钮。

  1. 查看上传的图片

在浏览器中,查看上传的图片是否正确显示在 GridView 控件中。

  1. 查看读出的图片

在浏览器中,单击 GridView 控件中的图片,查看读出的图片是否正确显示在浏览器中。如果 ImageID 参数为空,我们将输出“ImageID 参数不能为空!”的提示信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ASP.NET下上传图片到数据库,并且读出图片的代码(详细版) - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • 在MacOS+Linux+Nginx中发布和部署Asp.Net Core

    在 MacOS+Linux+Nginx 中发布和部署 Asp.Net Core 的完整攻略 在 MacOS+Linux+Nginx 中发布和部署 Asp.Net Core,需要进行以下步骤: 安装 .NET Core SDK 在 MacOS 和 Linux 中,需要先安装 .NET Core SDK,可以从官网下载并安装。 创建 Asp.Net Core 项…

    云计算 2023年5月16日
    00
  • .NET 6开发TodoList应用实现结构搭建

    下面是关于”.NET 6开发TodoList应用实现结构搭建”的完整攻略,包含两个示例说明。 简介 TodoList是一个简单的任务管理应用程序,用户可以添加、编辑和删除任务。在.NET 6中,我们可以使用ASP.NET Core MVC来开发TodoList应用程序。本文将详细讲解如何在.NET 6中开发TodoList应用程序,并实现应用程序的结构搭建。…

    云计算 2023年5月16日
    00
  • 云计算之 PaaS详解

    PaaS是Platform-as-a-Service的缩写,意思是平台即服务。 Paas – 概述 计算机技术   PaaS(Platform-as-a-Service:平台即服务)    全称:(Platform as a service)    中文: 平台即服务 PaaS的优势(1张)   所谓PaaS实际上是指将软件研发的平台(计世资讯定义为业务基础…

    云计算 2023年4月11日
    00
  • 信息化拥抱云计算

            经过多年信息化建设,中国的数字政务已经迈入了新阶段。在去年国务院办公厅印发的《国家信息化发展战略纲要》明确强调,要持续深化电子政务应用,着力解决信息碎片化、服务割裂化等问题,以信息化推进国家治理体系和治理能力现代化。今年的政府工作报告中提出,要大力推行“互联网+政务服务”,形成全国统一的政务服务平台,实现部门间数据共享,让居民和企业少跑腿、好…

    云计算 2023年4月9日
    00
  • ASP.NET Core 2.0 本地文件操作问题及解决方案

    ASP.NET Core 2.0 本地文件操作问题及解决方案 在ASP.NET Core 2.0应用程序中,本地文件操作是一个常见的需求,然而,有时候ASP.NET Core应用程序在进行本地文件操作时会遇到问题。本文将介绍这些问题,并提供解决方案。 问题1: 没有读取权限 当您尝试从本地文件系统中读取文件时,您的应用程序可能会遇到“没有足够的权限访问此文件…

    云计算 2023年5月17日
    00
  • ASP.NET中Web API解决跨域问题

    ASP.NET中Web API解决跨域问题的攻略主要分为以下几个步骤: 1. 安装CORS相关包 打开Visual Studio NuGet Package Manager,搜索Microsoft.AspNet.WebApi.Cors,安装该包。 2. 启用CORS支持 在WebApiConfig.cs中增加以下代码: public static void …

    云计算 2023年5月17日
    00
  • 在CentOS下安装和配置分布式系统Ceph的教程

    以下为在CentOS下安装和配置分布式系统Ceph的完整攻略: 1. 安装 Ceph 1.1 添加 Ceph 的软件源 在 $sudo 权限下,执行以下命令: cd /etc/yum.repos.d/ sudo wget -O ceph.repo https://download.ceph.com/rpm-jewel/el7/ceph.repo 1.2 安装…

    云计算 2023年5月17日
    00
  • C#实现图片上传(PC端和APP)保存及 跨域上传说明

    C#实现图片上传(PC端和APP)保存及 跨域上传说明 本文将会详细介绍C#如何实现图片上传并保存,以及如何进行跨域上传,下面将分别进行讲解。 PC端图片上传及保存 1.前端上传代码 前端的上传代码可以使用form表单配合input文件控件来完成: <form action="upload.aspx" method="po…

    云计算 2023年5月17日
    00
合作推广
合作推广
分享本页
返回顶部