登录注册
社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
主题 : 向老大请教个技术问题
伍胥之 离线
级别: 军区司令员

显示用户信息 
楼主  发表于: 2006-08-08   

向老大请教个技术问题

我的数据库库里存有一些OLE DB类的数据,想实现给出用户一个链接后,单击该link后直接下载,而不是在IE窗口中打开(如Word文档,PDF或照片之类),我知道Microsoft的说明里只要加上个如下的HTTP header后可以实现这个功能。 ,hO*W-a% 1  
"Content-Disposition" "attachment; filename=" & FileName.EXT (}!xO?NA(  
4\? z^^  
但是我的数据库里没有保存原来文件的扩展名,只有像下面这样格式的MIME信息 F"|OcKAA}h  
audio/mid、audio/mpeg、audio/x-aiff、audio/x-ms-wma、audio/x-pn-realaudio、udio/x-wav、image/bmp、image/gif、image/ief、image/jpeg。 !UPKy$  
所以HTTP Content-Type只能是这样的信息。 (3. B\8s  
>]/RlW[  
因为没有扩展名,所以弹出的下载窗品提示我要下载是HTMLDocument,名字是我根据内容生成的,当然如果这类文件在用户的机器上如果注册过的,就会形成正确的扩展名,如果没有,则不知道下载的文件是什么类型。 p"l GR&b  
8/i];/,v*M  
我的问题是:如果不建立MIME与文件扩展名的对照表,有什么办法可以根据MIME信息得到文件的扩展名。(Windows 平台) C_5o&O8Bc  
ERka l7+  
谢谢老大啊! w?;j5[j  
kh7RQbNY<I  
(上图是指定和未指定JPG为扩展名时的截图,当然在我自己的机器上,两种情况下提示存盘的时候都会存为正确的ACDSee JPEG文件)
描述:未指定扩展名
图片:1.jpg
描述:指定扩展名
图片:2.jpg
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
杺栫杣杊椌柮栬,䒴蓉艿芖。
admin 离线
级别: 管理员

显示用户信息 
沙发  发表于: 2006-08-08   
呵呵,伍教授又出考题了。 ScCp88KpFI  
不过这次题目有点难。 6y0CEly>3#  
,`Yx(4!rR  
先把考题弄清楚: *(+*tj cWa  
;xXD2{q  
比如你例子中的”校园生活-无主题(1983).JPG"这个文件在服务器上是如何存储的?文件名是什么?你给的第二张图中,编号为345的图片的下载链接是什么,该链接是通过调用数据库中的数据自动生成的吗? )G+D6s23  
vz~`M9^  
如果数据库没保存上传文件的扩展名, J]AkWEiCJ  
感觉上处理起来会比较麻烦。
http://www.bachinese.com
Bay Area Chinese Forum  灣區華人網站
Serving the San Francisco Bay Area [Silicon Valley] Chinese Community
服務舊金山灣區[硅谷/矽谷]華人社區
伍胥之 离线
级别: 军区司令员

显示用户信息 
板凳  发表于: 2006-08-09   
1. 俺是虚心请教,老大可别调侃俺。 Kb$6a'u7  
2. 所有的文件内容都是在一个数据库中,没有记录文件名和扩展名,只有MIME信息,所以文件名是根据另一个字段生成的,扩展名不知道(我知道,但是程序不知道)。 u-/5&Endb  
3. 那个链接是一个ASP程序,就是读出一个BLOB字段的内容以binarywrite方法写到客户端,与在IE窗口中直接显示唯一的不同是添加了一个HTTP的Header,这样在click它的时候会提示保存文件。 JLz.lk*.  
4. 如果我在数据库中保存扩展名就会比较好办,可问题是我当时没有考虑这个功能,所以只保存了一个MIME字段。  gl$}t H  
5. 我现在问题就是如果我不再建立一个MIME与扩展名的对照表,能不能根据MIME在服务器上找出它对应的文件扩展名。
杺栫杣杊椌柮栬,䒴蓉艿芖。
admin 离线
级别: 管理员

显示用户信息 
地板  发表于: 2006-08-18   
不好意思, S%Bm4jY  
这么多天了, cVYPPal  
估计得交白卷了。 6Cpn::WW}  
y$,j'B:;4m  
想了一下,实在想不出什么高招。 J/k4CV*li(  
写程序我自己是个“菜鸟”。 xo GX&^=  
不知道坛子里有没有高手, Dug{)h_2  
能帮伍教授一把的?
http://www.bachinese.com
Bay Area Chinese Forum  灣區華人網站
Serving the San Francisco Bay Area [Silicon Valley] Chinese Community
服務舊金山灣區[硅谷/矽谷]華人社區
伍胥之 离线
级别: 军区司令员

显示用户信息 
地下室  发表于: 2006-08-18   
感谢爱得民同志在家务繁忙的时候还一直惦记着这样一个小问题,非常感谢! >gT QD\k:D  
@{ CP18~:  
这不是什么重要问题,无解是因为俺考虑不周,没有在开始设计阶段就考虑到这种需求。 BD_"w]bqD  
i6-&$<  
这个东西不过是我们同学毕业二十周年做的一个影集,一个自己玩的东西,没有什么简捷办法就算了。 $/)0iL{0  
G<m6Sf  
不过,老大您也恁牵须了,你说你编程序不在行,简直让俺等无地自容啊!好在俺只是业余玩的,属于一脚门外另一脚踏在门槛上的半门外汉。可是当俺在普通人面前俺都是以高手自居的,从没像老大这么谦虚过,难道这就是真正的高手与半瓶HAc的区别? XS_Ib\-50  
o4qB0h  
老大这一陈辛苦了,慰问一下。
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

验证问题:
3 * 6 = ? 正确答案:18
按"Ctrl+Enter"直接提交