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

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

向老大请教个技术问题

我的数据库库里存有一些OLE DB类的数据,想实现给出用户一个链接后,单击该link后直接下载,而不是在IE窗口中打开(如Word文档,PDF或照片之类),我知道Microsoft的说明里只要加上个如下的HTTP header后可以实现这个功能。 $`a>y jma  
"Content-Disposition" "attachment; filename=" & FileName.EXT eb#yCDIC   
eb ` !  
但是我的数据库里没有保存原来文件的扩展名,只有像下面这样格式的MIME信息 8*bEsc|  
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。 nO\c4#ce  
所以HTTP Content-Type只能是这样的信息。 c>$PLO^  
<<SUIY@X  
因为没有扩展名,所以弹出的下载窗品提示我要下载是HTMLDocument,名字是我根据内容生成的,当然如果这类文件在用户的机器上如果注册过的,就会形成正确的扩展名,如果没有,则不知道下载的文件是什么类型。 e=H,|)P  
$~;h}I  
我的问题是:如果不建立MIME与文件扩展名的对照表,有什么办法可以根据MIME信息得到文件的扩展名。(Windows 平台)  S6d&w6  
NMy+=GZu^  
谢谢老大啊! 1H-d<G0)  
xj!G9x<!  
(上图是指定和未指定JPG为扩展名时的截图,当然在我自己的机器上,两种情况下提示存盘的时候都会存为正确的ACDSee JPEG文件)
描述:未指定扩展名
图片:1.jpg
描述:指定扩展名
图片:2.jpg
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

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

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

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

显示用户信息 
地板  发表于: 2006-08-18   
不好意思, W1\F-:4L@  
这么多天了, v?L`aj1ox  
估计得交白卷了。 R^f-j-$o]  
P 5_ l&  
想了一下,实在想不出什么高招。 [dIlt"2fV  
写程序我自己是个“菜鸟”。 oD8X]R, H  
不知道坛子里有没有高手, 0_f6Qrcj  
能帮伍教授一把的?
http://www.bachinese.com
Bay Area Chinese Forum  灣區華人網站
Serving the San Francisco Bay Area [Silicon Valley] Chinese Community
服務舊金山灣區[硅谷/矽谷]華人社區
伍胥之 离线
级别: 军区司令员

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

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