zoukankan
html css js c++ java
sql server读取图片类型
Page.Response.BufferOutput
=
true
;
Page.Response.ContentEncoding
=
Encoding.Default;
Page.Response.Charset
=
"
GB2312
"
;
Page.Response.ContentType
=
"
image/jpeg
"
;
//
这里如果是图片是jpeg或jpg类型的这么写,如果是bmp的写成"image/bmp",gif的为"image/gif"
//
下面是输出图片过程(这是我原来写过的一部分代码)
private
void
ShowImage(
string
id,
string
TableName)
//
ID表示图片在TableName表中的ID
{
int
len
=
4096
;
string
conn
=
""
;
//
连接字符串
SqlConnection sqlconn
=
new
SqlConnection(conn);
sqlconn.Open();
string
sText
=
"
declare @id varchar(20);
"
;
sText
+=
"
set @id='
"
+
id
+
"
';
"
;
sText
+=
"
select @image=textptr(image),@datalen=datalength(image) from
"
+
TableName
+
"
where id=@id
"
;
SqlCommand sqlcmd
=
new
SqlCommand(sText,sqlconn);
SqlParameter ptrParam
=
sqlcmd.Parameters.Add(
"
@image
"
,SqlDbType.Binary,
16
);
ptrParam.Direction
=
ParameterDirection.Output;
SqlParameter datalenParam
=
sqlcmd.Parameters.Add(
"
@datalen
"
,SqlDbType.Int);
datalenParam.Direction
=
ParameterDirection.Output;
sqlcmd.ExecuteNonQuery();
int
datalen
=
int
.Parse(datalenParam.Value.ToString());
datalen
-=
3
;
//
去除掉'0x0'
if
(datalen
<
0
)
{
Response.Write(
"
<script>alert('文档数据不存在,请核查是否由于错误操作删除了文档数据!')</script>
"
);
return
;
}
if
(datalen
<
len)
sText
=
"
readtext
"
+
TableName
+
"
.image @point @offset
"
+
datalen;
else
sText
=
"
readtext
"
+
TableName
+
"
.image @point @offset
"
+
len;
sqlcmd
=
new
SqlCommand(sText,sqlconn);
SqlParameter ptrParam1
=
sqlcmd.Parameters.Add(
"
@point
"
,SqlDbType.Binary,
16
);
ptrParam1.Value
=
ptrParam.Value;
SqlParameter offParam
=
sqlcmd.Parameters.Add(
"
@offset
"
,SqlDbType.Int);
offParam.Value
=
0
;
Stream outStream
=
Page.Response.OutputStream;
BinaryWriter bw
=
new
BinaryWriter(outStream,Encoding.Default);
byte
[] buffer
=
null
;
if
(datalen
<
len)
buffer
=
new
byte
[datalen];
else
buffer
=
new
byte
[len];
long
retval
=
0
;
int
offset_ctr
=
0
;
SqlDataReader dr
=
sqlcmd.ExecuteReader(CommandBehavior.SequentialAccess);
try
{
dr.Read();
if
(datalen
<
len)
retval
=
dr.GetBytes(
0
,
0
,buffer,
0
,datalen);
else
retval
=
dr.GetBytes(
0
,
0
,buffer,
0
,len);
while
(retval
>
0
)
{
if
(datalen
>
2
*
len)
{
bw.Write(buffer);
bw.Flush();
offset_ctr
+=
len;
dr.Close();
offParam.Value
=
offset_ctr;
dr
=
sqlcmd.ExecuteReader(CommandBehavior.SequentialAccess);
dr.Read();
retval
=
dr.GetBytes(
0
,
0
,buffer,
0
,len);
datalen
-=
len;
}
else
if
(datalen
>
len)
{
bw.Write(buffer);
bw.Flush();
datalen
-=
len;
offset_ctr
+=
len;
buffer
=
new
byte
[datalen];
dr.Close();
sText
=
"
readtext
"
+
TableName
+
"
.image @point
"
+
offset_ctr
+
"
"
+
datalen;
sqlcmd
=
new
SqlCommand(sText,sqlconn);
SqlParameter ptr
=
sqlcmd.Parameters.Add(
"
@point
"
,SqlDbType.Binary,
16
);
ptr.Value
=
ptrParam1.Value ;
dr
=
sqlcmd.ExecuteReader(CommandBehavior.SequentialAccess);
dr.Read();
retval
=
dr.GetBytes(
0
,
0
,buffer,
0
,datalen);
}
else
{
bw.Write(buffer);
bw.Flush();
offset_ctr
+=
datalen;
datalen
=
0
;
buffer
=
new
byte
[datalen];
dr.Close();
sText
=
"
readtext
"
+
TableName
+
"
.image @point
"
+
offset_ctr
+
"
"
+
datalen;
sqlcmd
=
new
SqlCommand(sText,sqlconn);
SqlParameter ptr
=
sqlcmd.Parameters.Add(
"
@point
"
,SqlDbType.Binary,
16
);
ptr.Value
=
ptrParam1.Value ;
offset_ctr
+=
datalen;
dr
=
sqlcmd.ExecuteReader(CommandBehavior.SequentialAccess);
dr.Read();
retval
=
dr.GetBytes(
0
,
0
,buffer,
0
,datalen);
}
}
Response.Flush();
bw.Close();
outStream.Close();
}
catch
(Exception ex)
{
string
ss
=
ex.Message ;
}
Response.End();
}
//
注:上面的代码是对我原来的代码进行更改之后给你的,你在调试一下吧
查看全文
相关阅读:
centos6.3 配置防火墙,开启80端口、3306端口
Unable to run man pages on Centos 6
1. 信息系统基础知识
2. 软件工程
CommonJs
软考资料
Node.js资料
qyqt5(一)
tf源码中的object_detection_tutorial.ipynb文件
分类结果的评价指标
原文地址:https://www.cnblogs.com/acelove/p/86293.html
最新文章
17 自定义属性及圆角imageView
16 不让子view获取焦点
15 设置控件不可点击
14 去掉标题栏和全屏
13 监听音量键事件
12 Bitmap缩放
11 Activity启动模式
MyEclipse10的一些问题(git插件,jdk7)
python netwokx环境搭建
zorka源码解读之tracer内部实现
热门文章
zorka源码解读之通过beanshell进行插桩的流程
zorka源码解读之Beanshell与zorka的交互实现
zorka源码解读之Instrument实现原理
language level in Intellij IDEA
玩转GIT
datatables笔记
JAVA StringBuilder StringBuffer String比较
js好文章
memcached
CKEditor
Copyright © 2011-2022 走看看