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

2023-10-29

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

数据库名:mydata

表名:table_img

字段:id   自动编号

filename   文本

img     OLE 对象

default.aspx

无标题页

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("");

//  Response.Write("");

//关闭数据库连接

conn.Close();

}

else

{

Response.Write("");

//  Response.Write("");

}

}

else

{

Response.Write("");

// Response.Write("");

}

}

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();

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 主键约束(PRIMARY KEY) [MySQL][数据库]

    主键约束 PRIMARY KEY 主键约束的特点 主键约束相当于唯一性约束 非空约束 主键约束不允许重复 也不允许出现空值 一个表最多只能有一个主键约束 建立主键约束可以在列级别创建 也可以再表级别创建 主键约束对应着表中的一列或者多列 对
  • JDK8:使用Optional进行变量判空、集合遍历

    防止 NPE 是程序员的基本修养 NPE Null Pointer Exception 一直是我们最头疼的问题 也是最容易忽视的地方 NPE常是导致Java应用程序失败的最常见的原因 在日常研发工作中 经常会处理各种变量 集合 但在使用的过
  • 【vue、uni-app】文本信息的完全显示(回车换行、连续空格、数字&英文换行)

    vue uni app 文本信息的完全显示 回车换行 连续空格 数字 英文换行 数据说明 完整显示 一 vue端 1 不做处理的效果 2 处理后 二 uni app端 1 不做处理的效果 2 处理后 总结 记录学习的轨迹 2021 12 0
  • 线程知识点补充

    全局解释器锁GIL 是什么 GIL本质也是一把互斥锁 将并发变成串行 降低效率以保证数据的安全性 每有一个进程 进程内就必然有一个用来执行代码的线程 也会有一个用来执行垃圾回收的线程 为了避免执行代码的线程和执行垃圾回收的线程对同一份数据进
  • golang 单元测试、性能测试、性能监控技术

    golang 单元测试 性能测试 性能监控技术 go语言提供了强大的测试工具 下面举例简单介绍一下 go test 单元测试 go test bench 性能测试 go tool pprof 性能监控 go test 单元测试 例如对包he
  • 至强服务器性能排行,英特尔至强处理器排名天梯 至强cpu天梯2020排名

    排名 名称 评分 1 Intel Xeon Platinum 8173M 2 00GHz 28 860 2 Intel Xeon Gold 6154 3 00GHz 27 722 3 Intel Xeon Gold 6138 2 00GHz
  • 【研究生】毕业答辩PPT制作和讲述要点(整理)

    引用网址 http blog sciencenet cn blog 53846 232974 html 引言 在QQ群上和研三的点评答辩ppt制作结果 不知不觉 唠叨 了很多 其中 让大家共享一下彼此的ppt文档 取人所长 不想 学生杨涛有
  • React SSR - 写个 Demo 一学就会

    今天写个小 Demo 来从头实现一下 react 的 SSR 帮助理解 SSR 是如何实现的 有什么细节 什么是 SSR SSR 即 Server Side Rendering 服务端渲染 是指将网页内容在服务器端中生成并发送到浏览器的技术
  • BTC-分叉

    分叉 fork 原来由一条链变为了两条链 造成原因 有可能是两个节点差不多同时挖到了一个区块 然后同时发布出去 这时候就会造成临时性的分叉 state fork forking attack deliberate fork 比特币的协议发生
  • 扫码普通二维码跳转微信小程序指定页面(体验服和开发服跳转链接不能动态传参)

    好久不见 时隔多年我又来记录问题来了 记录这次问题的主要原因是减少你我去搜索资源的时间 下面开始讲讲我越到的问题 下面说的是针对小程序体验版或者开发版哈 正式环境不存在这个问题 需求 pc端扫码登录 pc创建一个二维码 用户用微信自带扫码功
  • Python 中 Iterator和Iterable的区别

    Python中 list truple str dict这些都可以被迭代 但他们并不是迭代器 为什么 因为和迭代器相比有一个很大的不同 list truple map dict这些数据的大小是确定的 也就是说有多少事可知的 但迭代器不是 迭
  • STM32CubMX_MQ135检测空气质量

    一 MQ135简介 MQ135是测量空气污染情况常用的一个传感器 具有代表性 价格低 寿命长 敏感度也OK 主要用于测量空气中二氧化碳 氮氧化物 氨气 酒精 苯类等 这几样气体可以说都属于家用空气污染测定中的重要成份 因此用这个传感器刚刚好
  • BOT_SORT复现(Ubuntu20.04)

    论文地址 https arxiv org abs 2206 14651 代码地址 NirAharon BoT SORT BoT SORT Robust Associations Multi Pedestrian Tracking githu
  • tensorflow:使用卷积网络(CNN)实现mnist

    tensorflow1 8 0 python3 6 4 coding utf 8 import tensorflow as tf from tensorflow examples tutorials mnist import input d
  • 【adb 查看手机当前应用的包名,所有应用的包名以及安装位置】

    1 查看是否连接手机 adb devices 2 进入指定的device的shell adb shell 3 查看当前正在运行的APK的包名 adb shell dumpsys window findstr mCurrentFocus 例如
  • BigInteger 与 BigDecimal的区别

    目录 一 BigInteger 二 BigDecimal 一般来说 BigInteger用的不是很多 BigDecimal用的稍微多一点 就比如说JDBC中 如果一个字段的数据库类型是Number 那么 getObject getClass
  • ES6中声明变量的方法(let,const)

    ECMAScript 6 0 以下简称ES6 是JavaScript语言的下一代标准 已经在2015年6月正式发布了 它的目标 是使得JavaScript语言可以用来编写复杂的大型应用程序 成为企业级开发语言 ECMAScript和Java
  • Android版本大于M时动态申请权限的方法

    问题描述 Android应用开发时 若版本大于M 则有些权限需要在运行时用Java代码进行动态获取 解决方案 添加supportv7包 在build gradle app 文件dependencies节点中 添加v7包的依赖 impleme
  • linux java进程_Java+Linux,深入内核源码讲解多线程之进程

    之前写了两篇文章 都是针对Linux这个系统的 为什么 我为什么这么喜欢写这个系统的知识 可能就是为了今天的内容多线程系列 现在多线程不是一个面试重点 啊 那如果你能深入系统内核回答这个知识点 面试官会怎么想 你会不会占据面试的主动权 我不
  • c# mysql 二进制图片_ASP.NET(C#) 实现将图片以二进制保存到数据库中 转

    注意 上传大文件时 会出现错误 原因我现在还不知道 数据库名 mydata 表名 table img 字段 id 自动编号 filename 文本 img OLE 对象 default aspx 无标题页 default aspx cs u