我想要把一个大的二进制的文件存放到一个有很多字段的表中,请问应该怎么实现更好阿
问题如上。能否给出实用的代码。一定重分感谢, 问题点数:100、回复次数:9Top
1 楼pfc001(pfc001)回复于 2004-09-04 15:15:23 得分 0
upTop
2 楼pfc001(pfc001)回复于 2004-09-04 15:17:42 得分 20
Response.Buffer =true
a=Request.BinaryRead (Request.TotalBytes (test.GetCContent(0)))
set objstream=server.CreateObject ("ADODB.STREAM")
objStream.Type = 1
objStream.Mode = adModeReadWrite
objStream.Open
objStream.Write a
objStream.SaveToFile "c:\cer.cer",2
objStream.Close
这样写说错误 a=Request.BinaryRead (Request.TotalBytes (test.GetCContent(0)))Top
3 楼pfc001(pfc001)回复于 2004-09-04 15:19:31 得分 20
1.
给表格<table>添加“ style="word-break:break-all"”
<table style="word-break:break-all">
2.
<%
response.contenttype=rscontent("ContentType")
Response.BinaryWrite rscontent("nr")
%>
这些放入iframe里面,用另外一个页面单独二进制显示
Top
4 楼fenlin(孤帆)回复于 2004-09-04 15:23:38 得分 20
用OLE来存储啊,下面是一个例子
access数据库结构如下:
字段名称 类型 描述
id 自动编号 主键值
img OLE对象 用来保存图片数据
-------------------------------------------
供给用户的上传界面,可以让用户选择要上传的图片。代码如下
upload.htm
<html><body>
<form name="mainForm" enctype="multipart/form-data" action="process.asp" method=post>
<input type=file name=mefile><br>
<input type=submit name=ok value="OK">
</form></body></html>
--------------------------------------------------------------
process.asp
<%
response.buffer=true
formsize=request.totalbytes
formdata=request.binaryread(formsize)
bncrlf=chrB(13) & chrB(10)
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(formdata,bncrlf & bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
mydata=midb(formdata,datastart,dataend)
set connGraph=server.CreateObject("ADODB.connection")
connGraph.ConnectionString="driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("images.mdb") & ";uid=;PWD=;"
connGraph.Open
set rec=server.createobject("ADODB.recordset")
rec.Open "SELECT * FROM [images] where id is null",connGraph,1,3
rec.addnew
rec("img").appendchunk mydata
rec.update
rec.close
set rec=nothing
set connGraph=nothing
%>Top
5 楼aspczlover(你的骄傲...)回复于 2004-09-04 16:32:13 得分 20
下面两个文件实现存储
upload.asp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
</head>
<body>
<form name="mainForm" enctype="multipart/form-data"
action="process.asp" method=post>
<input type=file name=mefile size="20"><br>
<input type=submit name=ok value="OK">
</form>
</body>
</html>
process.asp
<!--#include file="../conn.inc"-->
<%
'字段类型最好是image的
response.buffer=true
dim formsize,formdata,bncrlf,divider,datastart,dataend,mydata
formsize=request.totalbytes
formdata=request.binaryread(formsize)
bncrlf=chrB(13) & chrB(10)
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(formdata,bncrlf & bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
mydata=midb(formdata,datastart,dataend)
set rec=server.createobject("ADODB.recordset")
rec.Open "SELECT * FROM [table]",conn,3,2
rec.addnew
rec("img").appendchunk mydata 'img字段的类型是image
rec.update
rec.close
set rec=nothing
set connGraph=nothing
%>Top
6 楼aspczlover(你的骄傲...)回复于 2004-09-04 16:43:09 得分 20
如果想从数据库取出文件
display.asp
<!--#include file="conn.asp"-->
<%
id=request("id")
set rs=server.createobject("ADODB.recordset")
sql="select * from table where id=" & id
rs.open sql,conn,1,1
Response.clear
Response.ContentType = "text/html"
Response.BinaryWrite rs("img")
rs.close
set rs=nothing
set conn=nothing
%>Top
7 楼yangyouyi(yangyouyi)回复于 2004-09-05 12:52:39 得分 0
fenlin(大灰狼爱小白兔)
用OLE来存储啊,下面是一个例子
access数据库结构如下:
字段名称 类型 描述
id 自动编号 主键值
img OLE对象 用来保存图片数据
-------------------------------------------
供给用户的上传界面,可以让用户选择要上传的图片。代码如下
upload.htm
<html><body>
<form name="mainForm" enctype="multipart/form-data" action="process.asp" method=post>
<input type=file name=mefile><br>
<input type=submit name=ok value="OK">
</form></body></html>
--------------------------------------------------------------
process.asp
<%
response.buffer=true
formsize=request.totalbytes
formdata=request.binaryread(formsize)
bncrlf=chrB(13) & chrB(10)
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(formdata,bncrlf & bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
mydata=midb(formdata,datastart,dataend)
set connGraph=server.CreateObject("ADODB.connection")
connGraph.ConnectionString="driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("images.mdb") & ";uid=;PWD=;"
connGraph.Open
set rec=server.createobject("ADODB.recordset")
rec.Open "SELECT * FROM [images] where id is null",connGraph,1,3
rec.addnew
rec("img").appendchunk mydata
rec.update
rec.close
set rec=nothing
set connGraph=nothing
%>
********************************
如果是两个输入项,而且第一个输入项的内容是图片,这样做没有任何问题。如果是有5个以上的输入项目,而且图片是在第1到最后任意一个那么怎么办啊?上面的代码是否可以用啊?
如果有多个图片又怎么办啊?Top
8 楼yangyouyi(yangyouyi)回复于 2004-09-05 13:03:07 得分 0
另外,如果在一个表中有10项以上的字段,三个以上的img字段,那么应该怎么把所有的内容都放到表中呢
这个办法:
rec.Open "SELECT * FROM [table]",conn,3,2
rec.addnew
rec("img").appendchunk mydata 'img字段的类型是image
rec.update
只是将一个图片字段放到表里,如果有其他的字段怎么处理阿?Top
9 楼aspczlover(你的骄傲...)回复于 2004-09-05 13:20:24 得分 0
那要用控件了Top
相关问题
- 在sql server上的table里建表,选择什么字段类型来存放文件,文件如何转成二进制格式。
- 关于二进制字段
- 客户端如何播放存放在数据库二进制字段中的多媒体文件?
- 我怎样定义记录类的字段,而可以存放图片等二进制文件?
- 如何操作二进制字段????
- 多个表,每个表都只有一个二进制字段,怎样取得它们的公共数据?
- 图片,大文本,二进制数据往数据库保存。难道只能用表的 BLOB字段么?
- quickreP做报表时对二进制字段怎么处理用控件能绑定吗?
- 如何将从sysproteries表中但得的字段的“描述”的二进制值转换成文本显示
- Access 中,要存放一个二进制串,比如一个结构,用什么类型的字段?用备注行不行?




