日期:2014-05-18  浏览次数:20984 次

如何打开数据库中流文件
现在的问题是,当我把一个文件选中后,该文件会以一个二进制流的方式写进数据库表的一个字段中(SQL2005),在显示的时候,我会用一个TREELIST来显示这些文件,当用户双击该文件名时,我要从数据库中读取流,然后以相应的程序打开,文件类型不确定。
例:用户选中第一个文件,aaa.doc,上传到数据库,每二个文件bbb.xls,第三个文件ccc.pdf,则在显示的时候如下:
aaa.doc
bbb.xls
ccc.pdf
当用户双击其中一个时,以流的文件从数据库中读出来,再以相应的程序打开
例,aaa.doc以WORD文件打开,bbb.xls以EXCEL文件打开,ccc.pdf以用户机器上所安装的能读取PDF文件的程序打开

解决方案
1、不用存临时文件的优先考虑,因为临时文件的删除时间不确定
2、使用临时文件和system.dia...process.start()的就不用说了,有其它更好的办法请留言
3、我这是C/S程序,B/S类的解决方案只作为参考,对解决问题帮助不大者不另外赠分

各位有什么好意见啊。帮助解决问题者,别赠分100,如果解决方案太棒,可赠200

------解决方案--------------------
http://topic.csdn.net/t/20021126/19/1207615.html
一定对你有帮助
------解决方案--------------------
winform的一样的,只不过不需要 Response.ContentType而已.
Response.ContentType只是输出一些信息给浏览器看的, 因为发到浏览器是二进制代码,浏览器不会去分析代码里的文件头信息

而 一个文件的流数据中, 本身已包含了自己的头信息. 只需要以相应的扩展名保存即可.
比如 exe,dll的pe头, bmp文件的bmp信息等等,本身就包含在自己的流数据中.