026. asp.net中将图片以二进制方式保存到数据库并以HTTP流方式输出
保存到数据库中
protected void imgbtnCreate_Click(object sender, ImageClickEventArgs e)
{ string PerHomeName=tbPerHomeName.Text;//获取空间名 string PerHomeSign=txtPerSign.Text; //获取个性签名 string imgPath = uploadFile.PostedFile.FileName;//获取文件件名 string lastName = imgPath.Substring(imgPath.LastIndexOf(".") + );//获取文件上传后缀名
SqlConnection conn = new SqlConnection( "server=.;database=TYW;uid=sa;pwd=123.456;");
conn.Open();
if (uploadFile.PostedFile.FileName != "" && lastName.ToLower() == "jpg" || lastName.ToLower() == "gif")
{
if (uploadFile.PostedFile.ContentLength > )
{
Response.Write("<script language='javaScript'>alert('你上传的图片超过了40KB!')</script>");
return;
}
int imgLength = uploadFile.PostedFile.ContentLength;//获取上传文件大小
Byte[] imageData = new Byte[imgLength]; //定义Byte数组
HttpPostedFile hp = uploadFile.PostedFile;//创建访问客户端上传文件的对象
Stream imagestream = hp.InputStream;//创建数据流对象
//将图片数据放到image数据对象实例中,其中0代表数组指针的起始位置,imagelength表示要读取流的长度
imagestream.Read(imageData, , imgLength);
string sqlstr = "insert into card(cardNo,cardBound,email)values('" + + "','" + + "',@ImageData)";
SqlCommand comm = new SqlCommand(sqlstr, conn);
comm.Parameters.Add("@ImageData", SqlDbType.Image);
comm.Parameters["@ImageData"].Value = imageData;
comm.ExecuteNonQuery();
conn.Close();
Response.Write("<Script>alert('个人空间创建成功!')</Script>");
}
else
{
Response.Write("<script>alert('上传头像不能为空,且格式必须为gif或jpg!');location='javascript:history.go(-1)'</script>");
}
}
以HTTP流形式输出到界面:
protected void Page_Load(object sender, EventArgs e)
{
string requestID = Request.QueryString["id"];//获取Default.aspx页面传过来的id值
SqlConnection conn = new SqlConnection("server=.;database=TYW;uid=sa;pwd=123.456;");
string strsql = "select * from [card] where cardBound=" + ;
SqlCommand comm = new SqlCommand(strsql, conn);//创建命令对象
conn.Open();
SqlDataReader dr = comm.ExecuteReader();//创建数据阅读器
if (dr.HasRows)
{
while (dr.Read())
{
byte[] imageData = (byte[])dr["email"];
Response.BinaryWrite(imageData);//输出二进制流形式的图片
}
}
dr.Close();
conn.Close();
}
026. asp.net中将图片以二进制方式保存到数据库并以HTTP流方式输出的更多相关文章
- ASP.Net将图片以二进制方式存入数据库,并读取
把图片转换成二进制--把二进制转换成图片 private void button1_Click(object sender, EventArgs e) { string path = this.tex ...
- php将图片以二进制保存到mysql数据库并显示
一.存储图片的数据表结构: -- -- 表的结构 `image` -- CREATE TABLE IF NOT EXISTS `image` ( `id` int(3) NOT NULL AUTO_I ...
- C#程序中将图片转换为二进制字符串,并将二进制字符串转换为图片
/// <summary> /// 将图片以二进制流 /// </summary> /// <param name="path"></pa ...
- FMDB使用的一点心得:数据库创建、制表、查询等以及image转换成二进制nsdata保存到数据库中
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u012951123/article/details/36871955 <span style= ...
- asp.net多图片上传同时保存对每张图片的描述
前台aspx //图片预览和描述 function previewImage(file) { var div = document.getElementById('preview'); div.inn ...
- .net FileUpload上传图片 图片转换二进制,以及保存显示
protected void Button1_Click(object sender, EventArgs e) { Stream stream = FileUpload1.PostedFile.In ...
- c#实现文件写入数据表/以二进制流保存到数据库,并实现下载
上传: 1.上传文件先保存到服务器 File.SaveAs(path) 2.sql(文件和sql在一个服务器上)进行保存操作: insert into File(filename,filebody ...
- springboot + mybatis 完成图片上传并保存到数据库
添加依赖 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons- ...
- scarpy crawl 爬取微信小程序文章(将数据通过异步的方式保存的数据库中)
import scrapy from scrapy.linkextractors import LinkExtractor from scrapy.spiders import CrawlSpider ...
随机推荐
- GSM BTS Hacking: 利用BladeRF和开源BTS 5搭建基站
引文 如果你已经购买了Nuand(官方)BladeRF x40,那么就可以在上面运行OpenBTS并可以输入一些指令来完成一些任务.一般来说HackRF,是一款覆盖频率最宽的SDR板卡.它几乎所有的信 ...
- cookie 内容的获取
NSMutableArray *cookiesStoreAll = [[NSMutableArray alloc]init]; NSUInteger totalNumberOfCookies; ...
- 2013杭州现场赛B题-Rabbit Kingdom
杭州现场赛的题.BFS+DFS #include <iostream> #include<cstdio> #include<cstring> #define inf ...
- 30道四则运算<1>
#include<iostream> using namespace std; #define random()(rand()%100) class shuzi //shuzi类的功能是产 ...
- 英文VS2010安装中文版MSDN文档方法
英文VS2010安装中文版MSDN文档方法 2010-06-01 11:52 by 李永京, 51409 阅读, 50 评论, 收藏, 编辑 在2010年4月12号发布Visual Studio 20 ...
- 【转】oracle job相关内容
每天凌晨2点执行是这样的 dbms_job.submit(v_job,'lv;',TRUNC(sysdate+1)+2/24,'TRUNC(sysdate+1)+2/24'); 还有定义JOB最好是这 ...
- php-抽象
//继承//子类可以继承父类的一切//特点:单继承//函数的重写 //多态//当父类引用指向子类实例,由于子类对父类的方法进行了重写,父类引用在调用该方法的时候表现出的不同//如果一个方法需要一个父类 ...
- 机器学习技法-AdaBoost元算法
课程地址:https://class.coursera.org/ntumltwo-002/lecture 重要!重要!重要~ 一.Adaptive Boosting 的动机 通过组合多个弱分类器(hy ...
- 尽量多的以 const/enum/inline 替代 #define
前言 在面向过程语言,如 C 语言中,#define 非常常见,也确实好用,值得提倡.但在如今面向对象的语言,如 C++ 语言中,#define 就要尽量少用了. 为何在 C++ 中就要少用了呢? 这 ...
- Android内存管理机制之一:low memory killer
转载自http://www.miui.com/thread-29268-1-1.html 准备写这个专题之前,心里是有点忐忑的.首先Android内存管理机制相当复杂,想要讲清楚比较困难:其次对于绝大 ...