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

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

向老大请教个技术问题

我的数据库库里存有一些OLE DB类的数据,想实现给出用户一个链接后,单击该link后直接下载,而不是在IE窗口中打开(如Word文档,PDF或照片之类),我知道Microsoft的说明里只要加上个如下的HTTP header后可以实现这个功能。 gh TcB  
"Content-Disposition" "attachment; filename=" & FileName.EXT (jMtN?&0H-  
8QT<M]N%  
但是我的数据库里没有保存原来文件的扩展名,只有像下面这样格式的MIME信息 `q%U{IR  
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。 wAw42{M  
所以HTTP Content-Type只能是这样的信息。 '9'l=Sh  
T_ eJ}(p  
因为没有扩展名,所以弹出的下载窗品提示我要下载是HTMLDocument,名字是我根据内容生成的,当然如果这类文件在用户的机器上如果注册过的,就会形成正确的扩展名,如果没有,则不知道下载的文件是什么类型。 a*D,*C5}  
(VR" Mi4  
我的问题是:如果不建立MIME与文件扩展名的对照表,有什么办法可以根据MIME信息得到文件的扩展名。(Windows 平台) 9*4 .  
|)9thIQF  
谢谢老大啊! ovo/!YJ2  
q^5yk=2fq  
(上图是指定和未指定JPG为扩展名时的截图,当然在我自己的机器上,两种情况下提示存盘的时候都会存为正确的ACDSee JPEG文件)
描述:未指定扩展名
图片:1.jpg
描述:指定扩展名
图片:2.jpg
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
沙发  发表于: 2006-08-08   
呵呵,伍教授又出考题了。 Zb."*zL  
不过这次题目有点难。 W@^J6sH  
80|onP\L  
先把考题弄清楚: qYK4 )JP  
_lXt8}:+  
比如你例子中的”校园生活-无主题(1983).JPG"这个文件在服务器上是如何存储的?文件名是什么?你给的第二张图中,编号为345的图片的下载链接是什么,该链接是通过调用数据库中的数据自动生成的吗? \^9pW 2v  
Jn=42Q:>  
如果数据库没保存上传文件的扩展名, (%bE~Q2P*<  
感觉上处理起来会比较麻烦。
http://www.bachinese.com
Bay Area Chinese Forum  灣區華人網站
Serving the San Francisco Bay Area [Silicon Valley] Chinese Community
服務舊金山灣區[硅谷/矽谷]華人社區
伍胥之 离线
级别: 军区司令员

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

显示用户信息 
地板  发表于: 2006-08-18   
不好意思, MWs~#ReZ  
这么多天了, _8^0!,j   
估计得交白卷了。 tw<P)V\h  
qp>N^)>  
想了一下,实在想不出什么高招。 =2%VZE7Vm  
写程序我自己是个“菜鸟”。 K\(6 rS}N  
不知道坛子里有没有高手, +"8}R~`!  
能帮伍教授一把的?
http://www.bachinese.com
Bay Area Chinese Forum  灣區華人網站
Serving the San Francisco Bay Area [Silicon Valley] Chinese Community
服務舊金山灣區[硅谷/矽谷]華人社區
伍胥之 离线
级别: 军区司令员

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

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