主题:  用asp上传一个二进制文件到服务端数据库问题

stevenjing

职务:普通成员
等级:1
金币:0.0
发贴:4
#12004/7/14 12:00:23
我用asp上传一个二进制文件到服务端数据库(sql server),然后在页面上提供下载,这些都已经实现了,但是我发现下载回来的文件总比上传时的源文件实际占用空间小1字节,导致rar文件下载回来后被破坏,不能正常解压。

我感觉问题不在代码上,因为我的上传代码是rs("downfile").appendchunk filevalue
这时我用lenb(filevalue)得到的结果是正确的,也就是上传文件的正确大小
但是读数据库时我用lenb(rs("downfile"))得到的结果要比源文件小1

我找不到原因,希望能帮我找找。



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#22004/7/15 10:02:50
dim lngSize
dim myarr()

lngSize=rs("downfile").ActualSize
得到该列的实际大小

redim myarr(lngSize-1)
myarr=rs("downfile").GetChunk(lngSize)
将指定大小的数据块读入到数据中



stevenjing

职务:普通成员
等级:1
金币:0.0
发贴:4
#32004/7/15 12:30:58
rs("downfile").ActualSize 得到的值已经比上传的文件大小小1了
我怀疑是sqlserver image字段不支持rar、zip文件
其他格式的文件上传下载就都没有问题

我尝试用binary字段存取rar、zip 但是不知道用什么方法读写数据库



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#42004/7/15 13:42:14
在rs("downfile").appendchunk filevalue之前先rs("downfile").appendchunk null试试