以二进制码形式将图片存到数据库中,再从数据库中以二进制的形式从数据库中读出来

2024-05-05 08:18

本文主要是介绍以二进制码形式将图片存到数据库中,再从数据库中以二进制的形式从数据库中读出来,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.FileUpload控件和上传的button控件

    <asp:FileUpload ID="fuPhoto" runat="server" Style="width: 150px;" />
    <asp:Button ID="btnSaveImage" runat="server" Text="上传" OnClick="btnSaveImage_Click"  Style="width: 50px;" ValidationGroup="QUXIAO" />

2.button的点击事件

 protected void btnSaveImage_Click(object sender, EventArgs e)
        {
            HttpPostedFile UpFile = fuPhoto.PostedFile;
            try
            {
                if (UpFile.ContentLength == 0)
                {      //文件长度为零时 
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('请选择要上传的图片')</script>");
                    //Page.RegisterStartupScript("err", "<script language=javascript>alert('请你选择你要上传的文件');</script>");
                }
                else
                {
                    FileByteArray = new Byte[UpFile.ContentLength];      //图象文件临时储存Byte数组 
                    Stream StreamObject = UpFile.InputStream;    //建立数据流对像 
                    //读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度 
                    StreamObject.Read(FileByteArray, 0, UpFile.ContentLength);
                    Session["photo"] = FileByteArray;
                    this.Image1.ImageUrl = "ImageView.aspx?random=" + new Random().Next().ToString();

                }
            }
            catch (Exception err)
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('上传文件失败')</script>");
                //Page.RegisterStartupScript("err", "<script language=javascript>alert('上传文件失败," + err.Message + "');</script>");
            }

 

        }

 

3.建一个新页面(ImageView.aspx.)

此页面前台不放任何控件,后台代码:

 protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Session["photo"] != null)
                {
                    Byte[] FileByteArray = (Byte[])Session["photo"];
                    Response.BinaryWrite(FileByteArray);
                    Response.End();
                }
                else
                {
                    string name = HttpContext.Current.Server.MapPath("~/images/nothing.jpg");
                    FileStream fs = File.OpenRead(name);
                    byte[] content = new byte[fs.Length];
                    fs.Read(content, 0, content.Length);
                    Response.BinaryWrite(content);
                    Response.End();
                }
            }


        }

4.在上传页面的pageload写上如代码.

         if (!IsPostBack)
            {
                Image1.ImageUrl = "ImageView.aspx?random=" + new Random().Next().ToString();
            }

5.将上传的图片以二进制的形式存到数据库中

pageload中  FileByteArray = null;Session["photo"] = null;

保存方法中  patInfo.Photo = (Byte[])Session["photo"];

6.将二进制的图片从数据库中读出来

公共方法中

  public string saveFilePath
        {
            get { return ViewState["saveFilePath"].ToString(); }
            set { ViewState["saveFilePath"] = value; }
        }
        public Byte[] FileByteArray
        {
            get
            {

                return ViewState["FileByteArray"] as Byte[];

            }

            set { ViewState["FileByteArray"] = value; }


        }

显示图片

                    FileByteArray = (Byte[])patInfo.Photo;
                    Session["photo"] = (Byte[])patInfo.Photo;

 

这篇关于以二进制码形式将图片存到数据库中,再从数据库中以二进制的形式从数据库中读出来的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/961221

相关文章

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

使用Python实现无损放大图片功能

《使用Python实现无损放大图片功能》本文介绍了如何使用Python的Pillow库进行无损图片放大,区分了JPEG和PNG格式在放大过程中的特点,并给出了示例代码,JPEG格式可能受压缩影响,需先... 目录一、什么是无损放大?二、实现方法步骤1:读取图片步骤2:无损放大图片步骤3:保存图片三、示php

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作