ASP.NET(C#) 实现将图片以二进制保存到数据库中 转

(四)C#图像处理——四大基本方法之一内存法 (特别申明:1、如若转载请标明出处http://blog.csdn.net/gufengcangying。                                         2、 如若雷同,算我抄你!) 在文章(一)的基础上面添加按钮控件,并设置其相应的属性。 如下Form1.Designer.cs中显示其属性:              //             / 阅读详情

 

注意:上传大文件时,会出现错误,原因我现在还不知道.

数据库名:mydata

表名:table_img

字段:id   自动编号

filename   文本

img     OLE 对象

 

default.aspx 

 

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
   <form id="form1" runat="server">
    <div>
      <asp:FileUpload ID="FileUpload1" runat="server" /><br />
        <br />
        &nbsp;<asp:Button ID="Button1" runat="server" Text="上传" OnClick="Button1_Click" /></div>
     
    </form>

</body>
</html>

 

 

default.aspx.cs

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.Data.OleDb;
using System.IO;
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        try
        {
            if (FileUpload1.HasFile)
            {
                if (IsAllowedExtension(this.FileUpload1))
                {
                    //取得上传文件的大小
                    int FileLen = FileUpload1.PostedFile.ContentLength;

                    Byte[] FileData = new Byte[FileLen];

                    //创建访问客户端上传文件的对象
                    HttpPostedFile hp = FileUpload1.PostedFile;

                    //创建数据流对象
                    Stream sr = hp.InputStream;

                    //将图片数据放到FileData数组对象实例中,0代表数组指针的起始位置,FileLen代表指针的结束位置
                    sr.Read(FileData, 0, FileLen);
                    string strdatapath = "Provider = Microsoft.JET.OleDB.4.0;Data Source = " + Server.MapPath("mydata.mdb");
                    OleDbConnection conn = new OleDbConnection(strdatapath);
                    conn.Open();
                    OleDbCommand cmd = new OleDbCommand("insert into table_img(filename,img) values(filename,img)", conn);

                    //存储过程插入到数据库中
                    OleDbParameter para1 = new OleDbParameter("filename", OleDbType.VarChar);
                    para1.Value = "FileData";
                    cmd.Parameters.Add(para1);
                    //存储过程插入到数据库中
                    OleDbParameter para = new OleDbParameter("img", OleDbType.Binary);
                    para.Value = FileData;
                    cmd.Parameters.Add(para);
                    cmd.ExecuteNonQuery();

                    //弹出上传成功的提示
                    Response.Write("<script>alert('上传成功');</script>");
                  //  Response.Write("<script languge = ‘javascript‘ type = ‘text/javascript‘>alert(‘上传成功‘);</script>");

                    //关闭数据库连接
                    conn.Close();

                }
                else
                {
                    Response.Write("<script>alert('上传文件格式不对,只允许上传jpg和gif格式的文件');</script>");
                  //  Response.Write("<script languge = ‘javascript‘ type = ‘text/javascript‘>alert(‘上传文件格式不对,只允许上传jpg和gif格式的文件‘);</script>");
                }
            }
            else
            {
                Response.Write("<script>alert('请选择上传文件');</script>");
               // Response.Write("<script language = ‘javascript‘ type = ‘text/javascript‘>alert(‘请选择上传文件‘);</script>");
            }
        }
        catch (Exception ex)
        {
              Response.Write(ex.Message);
            throw new Exception(ex.Message + "数据库连接失败");
        }


    }

    #region 实现真正意义上的文件类型判断
    public static bool IsAllowedExtension(FileUpload hifile)
    {
        System.IO.FileStream fs = new System.IO.FileStream(hifile.PostedFile.FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
        System.IO.BinaryReader r = new System.IO.BinaryReader(fs);
        string fileclass = "";
        byte buffer;
        try
        {
            buffer = r.ReadByte();
            fileclass = buffer.ToString();
            buffer = r.ReadByte();
            fileclass += buffer.ToString();

        }
        catch
        {
        }
        r.Close();
        fs.Close();
        if (fileclass == "255216" || fileclass == "7173")//说明255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    #endregion

}

 

 

 

显示图片

 protected void Button2_Click(object sender, EventArgs e)
    {
        // 在此处放置用户代码以初始化页面

        show();  //显示图片

    }
    public void show()
    {
        string strdatapath = "Provider = Microsoft.JET.OleDB.4.0;Data Source = " + Server.MapPath("mydata.mdb");
        OleDbConnection conn = new OleDbConnection(strdatapath);
       // conn.Open();
        string ss = "1";// Request.QueryString["id"].ToString();
        string s3 = "select * from table_img  where id=" + ss;
        OleDbCommand comm = new OleDbCommand(s3, conn);
        conn.Open();
        OleDbDataReader dr = comm.ExecuteReader(CommandBehavior.CloseConnection);
        while (dr.Read())
        {
            Response.Clear();
          //  Response.C;
            Response.BinaryWrite((byte[])dr["img"]);//读取
        }
        Response.End();
        conn.Close();
    }

asp.net(c#)从数据库里读取图片并显示到页面 这里我就不讲怎么读取第一种的方法了,因为太简单了,只是读取路径出来再将路径赋给你想要绑定的控件上就可以了。这里我只是单独讲一下,怎么读取二进制流的图片。    为了简单点讲,我就只是在页面显示一张图片。在page_load()事件里写上如下代码:     //连接数据库     SqlConnection cn= newSqlConnection("server=.;uid=sa;pwd=* 阅读详情

相关推荐

asp.net(c#)实现从sql数据库中下载以二进制方式存储的图片

////////////////////前台代码////////////////// /////////////////////////////////////////////// ////////////////////////////////           SelectCommand="SELECT * FROM [Picture]">

a63896350的专栏 960

用c#实现图片转内存缓存,实现跨进程共享

在C#中,可以使用System.Drawing.Bitmap类实现图片转内存缓存,以方便在不同进程之间的共享。以下是一个示例代码,演示如何将图片转换为内存缓存数据。1. 图片转换首先,我们需要将图片加载到一个Bitmap对象中。可以使用以下代码:```csharp using System.Drawing; Bitmap bitmap = new Bitmap("image.jpg"); ...

dotNET跨平台 1120

ASP.NET中图片的数据库存储方案

SQL Server 通过VARBINARYBINARY和IMAGE等数据类型支持二进制数据的存储。其中,是存储大型二进制对象的常用选择,它可以存储最大为2GB的数据。使用可以这样创建表:此表设计允许存储文档的元数据以及文档内容本身。数据类型存储的是二进制数据,对于存储图片、视频或其他大型文件非常有用。创建表时,为二进制字段设置合适的数据类型和长度是至关重要的。这将直接影响数据的存储效率和检索性能。除了数据类型外,还可以为字段设置默认值、标识属性等其他约束。

weixin_42592399的博客 576

c# 多个图片单独上传 保存到指定文件夹 保存到数据库

1.引用js文件 <script src="~/Scripts/uploadPreview.js"></script> <html> //toCalid()在表单提交之前进行非空验证   <form action="/Home/insertImg" method="post" enctype="multipart/form-data" ons...

weixin_30492047的博客 535

C#二进制图片的存储或读取

C_图片转换成二进制流并且保存到sql_server数据库,或者存储。

C#图片转换成二进制流并且保存到sql_server数据库

C#图片转换成二进制流并且保存到sql_server数据库

C# MemoryStream和BinaryFormatter

编程访问文件是通过文件流对象进行的,当应用程序需要访问文件时,必须先创建一个文件流对象,此流对象和文件是一一对应关系。在.NET中,使用抽象基类System.IO.Stream代表流,它提供Read和Write两个方法。由于数据流的有序性,因此流对象还有一个读写指针,为此,Stream类还有一个Seek方法用于移动读写指针。FileStream对象的数据来自文件,而MemoryStream对象的数

ljincheng的专栏 1万+

ASP.NET将图片以二进制的形式保存到数据库

ASP.NET将图片以二进制的形式保存到数据库

C#_图片(image)与字节数组(byte[])的互转方法

通常我们把图片保存到数据库时是以二进制数据(byte[],字节数组 )保存的。在SQlServer中可以看到: 在代码中,我们可以把Image转化为byte[]: private byte[] ImageToByte(Image Picture) { MemoryStream ms = new MemoryStream(); if (Picture == n...

weixin_30821731的博客 2432

C#将图片变成二进制保存到数据库

C#做的本地程序,将图片转换成二进制之后保存在数据库中。

BUSCO评估基因组的完整性

因为数据库收集的时候找的就是在不同的物种间都是单拷贝的基因,所以说在评估的物种里面应该也是单拷贝的状态才对。基因组层面评估:先去基因组上预测这些基因,再去做评估,如果说给他是一个注释好的基因集,这个时候提供的是一个蛋白集合,它就直接是去进行同源搜索,再去评估,看BUSCO数据库里面的这些单拷贝基因有或者无;首先,tblastn也是同源搜索,同源搜索之后,去对转录本进行读码框预测,预测完的结果还是去进行hmmsearch的搜索(hmmsearch是做蛋白质结构域搜索的),最终拿到BUSCO评估结果。

qq_64400864的博客 2959

c# mysql 二进制图片_ASP.NET(C#) 实现将图片以二进制保存到数据库中 转

注意:上传大文件时,会出现错误,原因我现在还不知道.数据库名:mydata表名:table_img字段:id 自动编号filename 文本img OLE 对象default.aspx无标题页default.aspx.csusing System;using System.Data;using System.Configuration;using System.Web;using ...

weixin_39564187的博客 247

LeGO-LOAM相对LOAM的改进---地面分离的方法-算法原理+代码讲解

实际上此种地⾯分离算法有⼀些简单,我们可以结合激光雷达安装⾼度等其他先验信息进⾏优化,避免将桌子这些当作地面点。LeGO-LOAM中前端改进中很重要的⼀点就是充分利⽤了地⾯点,那⾸先⾃然是提取对地⾯点的提取。理想情况下, 应该接近0,考虑到⼀⽅⾯激光雷达安装也⽆法做到绝对⽔平,另⼀⽅⾯,地⾯也不是绝。对⽔平,因此,这个⾓度会略微⼤于0,考虑到作者实际在草坪之类的场景下运动,因此这个值被设置成。如上图,相邻的两个扫描线束的同⼀列打在地⾯上如AB点所⽰,他们的垂直⾼度差。,计算垂直⾼度差和⽔平⾼度差的⾓度。..

zysss_的博客 775

ASP.NET--图片上传通过二进制保存到数据库

ASP.NET–图片上传通过二进制保存到数据库 开发工具:Visual Studio 2015、SQL Server 2014 Management Studio 关键技术:C# MVC 作者:刘东标 撰写时间:2019年1月18日 实现效果: 、、、、、、、、、、、、、html代码、、、、、、 @*选择文件*@ &lt;div cl...

weixin_44538423的博客 1569

通达信-申万宏源金融终端本地数据转sqlite3,2、解析申万宏源C:/zd_swhy_gm/vipdoc/sh/lday的sh600000股票数据

为量化做准备,通达信-申万宏源金融终端本地数据转sqlite3,解析申万宏源C:/zd_swhy_gm/vipdoc/sh/lday的sh600000股票数据

wuyaqi的博客 510

避开新手第一个坑:手把手教你正确安装Perforce服务器与客户端(P4d/P4V)

本文详细指导如何正确安装和配置Perforce服务器与客户端(P4d/P4V),避免新手常见的安装顺序错误。从环境准备到分步安装,再到常见问题排查和性能优化,帮助开发者快速搭建稳定的版本控制环境,提升团队协作效率。

weixin_26804345的博客 661

asp二进制mysql_asp 二进制保存数据库

C#将image中的显示的图片转换成二进制原文:C#将image中的显示的图片转换成二进制1.将Image图像文件存入到数据库中我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才能存入数据库中.View Code//将本地图片转换成二进制保存起来pr...文章杰克.陈2014-04-29967浏览量ASP.Net数据库如何存取图片当我们有大量的图片或者图片比...

weixin_29016315的博客 371

STM32开发笔记85: SX1268驱动程序设计(芯片唤醒)

单片机型号:STM32L053R8T6 本系列开发日志,将详述SX1268驱动程序的整个设计过程,本篇介绍芯片唤醒驱动程序。 一、RxDutyCycle模式 在讲述本篇内容之前,我们先来看一下SX1268的一种模式RxDutyCycle,译为中文为接收占空比模式。其可使用SetRxDutyCycle命令进入RxDutyCycle模式,我们来看一下该命令的详细解释。 该命令具有2个参数,...

snmplink的博客 4068

asp.net(c#)实现从sql server存取二进制图片

asp.net(c#)实现从sql server存取二进制图片 有一个员工表Employee,需要保存员工照片(Photo)到数据库(sql server)上。员工照片对应的字段是varbinary(max),也就是要存成二进制文件类型(这和以前讨巧地存图片文件路径就不相同了),默认可以为空。下面说说主要实现思路:1、存取图片(1)、将图片文件转换为二进制并直接存进sql server C...

weixin_34128237的博客 353

十三种通信接口芯片——《器件手册--通信接口芯片》

通信接口芯片用于实现差分信号的传输,具有抗干扰能力强、传输距离远等优点。RS485支持多点通信,可连接多个收发器,而RS422支持单向多点通信。广泛应用于工业自动化、过程控制、仪器仪表、楼宇自动化(如暖通空调、保安系统)、电机控制等领域。ST3485EBDRTP8485ESR用于实现串行通信,支持点对点通信,传输距离相对较短,数据速率较低。常用于计算机与外设(如打印机、调制解调器)之间的通信。如芯力特的SIT3232,可作为ST3232的替代品。

XU157303764的博客 4273

SSD |(二)SSD主控

控制器作为一个片上系统,处理来自用户端的命令并负责管理闪存颗粒。

知识库搭建ing 1960

图片二进制互相转换C#

图片二进制互相转换C#   图片的常见存储与读取凡是有以下几种: 存储图片:以二进制的形式存储图片时,要把数据库中的字段设置为Image数据类型(SQL Server),存储的数据是Byte[]. 1.参数是图片路径:返回Byte[]类型:  public byte[] GetPictureData(string imagepath) { /**/////根据图片文件

xxlovemf的专栏 2726

DJI O2协议物理层逆向工程解析:揭开无人机通信的神秘面纱

DJI的O2协议是其OcuSync传输技术的最新演进,应用于Mini 2、Mavic Air 2、Mavic Air 2s和Mavic 3等无人机模型。这种协议结合了多种先进无线通信技术,能够在远距离提供稳定可靠的低延迟连接。O2协议物理层(PHY)是OSI模型的最底层,负责在物理媒介上传输原始数据比特流。它定义了电气特性、调制方式、编码方案、数据传输速率和同步机制等。DJI O2协议的物理层逆向工程是一个复杂但极具价值的领域。

QQ_778132974的博客 2385

ASP.net(c#)将图片以二进制格式存储到数据库中

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, Even

Microblue(严 武) 2650

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Asp.net(c#)将数据库中以二进制存的图片显示出来

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.We

Microblue(严 武) 1608

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

asp二进制mysql_asP 读取二进制数据库

OleContainer操作Excel以二进制方式读写数据库需求源头:OleContainer操作Excel,想把Excel以二进制方式存入数据库,并且以二进制方式读取存入流:Procedure SaveToStream(ADOTable1: TAdoTable)var vStream: TMemoryStream;begintry try ...文章非常老帅2006-05-1270...

weixin_29721821的博客 274

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: 卸载我用的是Oracle 10G是因为自己遇到了这个麻烦所以才把这个发到网上来与大家分享希望能给大家带来一点方便!
下一篇: ASP.NET存储Session的StateServer
2004v2004
博客等级 码龄23年 71粉丝 95原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值