问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用asp.net 读取 二进制 文件

发布网友 发布时间:2022-05-05 18:49

我来回答

4个回答

懂视网 时间:2022-05-19 18:32

.Net下图片的常见存储与读取凡是有以下几种:
存储图片:以二进制的形式存储图片时,要把数据库中的字段设置为Image数据类型(SQL Server),存储的数据是Byte[].

1.参数是图片路径:返回Byte[]类型:
代码如下:
public byte[] GetPictureData(string imagepath)
        {
            ////根据图片文件的路径使用文件流打开,并保存为byte[]  
            FileStream fs = new FileStream(imagepath, FileMode.Open);//可以是其他重载方法
            byte[] byData = new byte[fs.Length];
            fs.Read(byData, 0, byData.Length);
            fs.Close();
            return byData;
        }

2.参数类型是Image对象,返回Byte[]类型:
代码如下:
public byte[] PhotoImageInsert(System.Drawing.Image imgPhoto)
        {
            //将Image转换成流数据,并保存为byte[]  
            MemoryStream mstream = new MemoryStream();
            imgPhoto.Save(mstream, System.Drawing.Imaging.ImageFormat.Bmp);
            byte[] byData = new Byte[mstream.Length];
            mstream.Position = 0;
            mstream.Read(byData, 0, byData.Length);
            mstream.Close();
            return byData;
        }

好了,这样通过上面的方法就可以把图片转换成Byte[]对象,然后就把这个对象保存到数据库中去就实现了把图片的二进制格式保存到数据库中去了。下面我就谈谈如何把数据库中的图片读取出来,实际上这是一个相反的过程。

读取图片:把相应的字段转换成Byte[]即:Byte[] bt=(Byte[])XXXX

1.参数是Byte[]类型,返回值是Image对象:
代码如下:
public System.Drawing.Image ReturnPhoto(byte[] streamByte)
        {
            System.IO.MemoryStream ms = new System.IO.MemoryStream(streamByte);
            System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
            return img;
        }

2.参数是Byte[] 类型,没有返回值,这是针对asp.net中把图片从输出到网页上(Response.BinaryWrite)
代码如下:
public void WritePhoto(byte[] streamByte)
        {
            // Response.ContentType 的默认值为默认值为“text/html”
            Response.ContentType = "image/GIF";
            //图片输出的类型有: image/GIF  image/JPEG
            Response.BinaryWrite(streamByte);
        }

补充:
针对Response.ContentType的值,除了针对图片的类型外,还有其他的类型:
代码如下:
Response.ContentType = "application/msword";
Response.ContentType = "application/x-shockwave-flash";
Response.ContentType = "application/vnd.ms-excel";

另外可以针对不同的格式,用不同的输出类型以适合不同的类型:
代码如下:
switch (dataread("document_type"))
            {
                case "doc":
                    Response.ContentType = "application/msword";
                case "swf":
                    Response.ContentType = "application/x-shockwave-flash";
                case "xls":
                    Response.ContentType = "application/vnd.ms-excel";
                case "gif":
                    Response.ContentType = "image/gif";
                case "Jpg":
                    Response.ContentType = "image/jpeg";
            }

一些相关的东西,可以作为参考
代码如下:
Image image= GetImageFromClipboard();//实现从剪切板获取图像的功能
System.IO.MemoryStream stream = new System.IO.MemoryStream();
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter
= new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); formatter.Serialize(stream, image);

FileStream fs=new FileStream("xx",FileMode.Open,FileAccess.Write);
fs.Write(stream.ToArray(),0,stream.ToArray().Length);

热心网友 时间:2022-05-19 15:40

读取文件不应该是读取文件路径吗?要用二进制读?

热心网友 时间:2022-05-19 16:58

首先得知道里面的文件格式啊。

热心网友 时间:2022-05-19 18:33

.Net下图片的常见存储与读取凡是有以下几种:
存储图片:以二进制的形式存储图片时,要把数据库中的字段设置为Image数据类型(SQL Server),存储的数据是Byte[].
1.参数是图片路径:返回Byte[]类型:

public byte[] GetPictureData(string imagepath)
{
////根据图片文件的路径使用文件流打开,并保存为byte[]
FileStream fs = new FileStream(imagepath, FileMode.Open);//可以是其他重载方法
byte[] byData = new byte[fs.Length];
fs.Read(byData, 0, byData.Length);
fs.Close();
return byData;
}
2.参数类型是Image对象,返回Byte[]类型:

public byte[] PhotoImageInsert(System.Drawing.Image imgPhoto)
{
//将Image转换成流数据,并保存为byte[]
MemoryStream mstream = new MemoryStream();
imgPhoto.Save(mstream, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] byData = new Byte[mstream.Length];
mstream.Position = 0;
mstream.Read(byData, 0, byData.Length);
mstream.Close();
return byData;
}
好了,这样通过上面的方法就可以把图片转换成Byte[]对象,然后就把这个对象保存到数据库中去就实现了把图片的二进制格式保存到数据库中去了。下面我就谈谈如何把数据库中的图片读取出来,实际上这是一个相反的过程。

读取图片:把相应的字段转换成Byte[]即:Byte[] bt=(Byte[])XXXX

1.参数是Byte[]类型,返回值是Image对象:

public System.Drawing.Image ReturnPhoto(byte[] streamByte)
{
System.IO.MemoryStream ms = new System.IO.MemoryStream(streamByte);
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
return img;
}
2.参数是Byte[] 类型,没有返回值,这是针对asp.net中把图片从输出到网页上(Response.BinaryWrite)

public void WritePhoto(byte[] streamByte)
{
// Response.ContentType 的默认值为默认值为“text/html”
Response.ContentType = "image/GIF";
//图片输出的类型有: image/GIF image/JPEG
Response.BinaryWrite(streamByte);
}
补充:
针对Response.ContentType的值,除了针对图片的类型外,还有其他的类型:
Response.ContentType = "application/msword";
Response.ContentType = "application/x-shockwave-flash";
Response.ContentType = "application/vnd.ms-excel";
另外可以针对不同的格式,用不同的输出类型以适合不同的类型:
switch (dataread("document_type"))
{
case "doc":
Response.ContentType = "application/msword";
case "swf":
Response.ContentType = "application/x-shockwave-flash";
case "xls":
Response.ContentType = "application/vnd.ms-excel";
case "gif":
Response.ContentType = "image/gif";
case "Jpg":
Response.ContentType = "image/jpeg";
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
十亿韩元折合人民币是多少阿? 邮政银行卡余额查询 邮政储蓄查询余额怎么查 艰难 的国运与雄健的国民读后感500(把以前与现在作对比) 初一下册人教版 艰难的国运与雄健的国民 读后感300字 今日头条哪个版本的有电脑版电脑版今日头条怎么下载 今日头条在电脑上如何安装今日头条怎样就安装到电脑上了 如何评价武庙? 武经总要前集概述 武经总要军事思想 VB.NET怎么安装 为什么我的王者进去验证人脸识别 然后我识别了人脸以后还没开始验证那个验证框就没了 怎样让IIS变成全能空间? 《王者荣耀》成年人已有实名为何游戏页面显示未完成人脸识别验证? Aap Asp是什么?怎么把Asp放置Aap上? 远程计算机或设备将不接受连接,是什么原因造成的,以前没有出现过, AAP是什么文件? Minecraft永动活塞虫怎么制作方法详解 有哪些让你值得骄傲的手工作品? 手机中的AppServer是什么 aap server是什么设备安装失败? 锦上添花的生肖 支付宝和网银有什么区别 锦上添花秀外慧中是什么生肖 草船借箭满载归,锦上添花二四万猜什么生肖?。 企业网银收到支付宝b2b提现是什么意思? 怎样做凉皮才不脆谢谢了,大神帮忙啊 成为更好的自己英文怎么说呀? 我会变得更好用英文怎么说? 华为g7plus耳机线控怎么调 在王者荣耀完*脸识别后,还没按完成验证游戏就重启了,请问这还算吗? 在数据集设计器中编辑查询 ASP+access2003的数据库连接问题. 三星i535wifi热点怎么打不开,一打开救显示(正在检查订阅状态)然后就出现(Could not connect to A... 本人在使用python连接数据库MS SQL时遇到下列问题:请指导,谢谢! 怎样把C#程序打包 全款买车的比贷款买车的人,到底亏了多少钱 全款买车比贷款买车亏吗? 我只有三万块钱,想买车,听别人说贷款比全款要亏上一万块钱,所以我拿三万块钱全款买二手车好一点吧? 全款买车的人到底比贷款买车的人亏了多少 全款买车的比贷款买车 到底亏了多少钱 全款买车比贷款买车的人,到底亏了多少钱 全款买车的人到底比贷款买车的人亏多少 贷款买车值不值得? 用什么牛肉做牛肉卷,肉质比较软? 华为p9为啥没有指纹锁 华为p9指纹锁怎么关闭 华为p9有指纹锁吗 华为p9有没有指纹解锁功能 桌面上的图标怎么才能删除 有首歌里面有一句 “成功还得靠自己”