如何使用CGI来实现文件下载功能,急急!!

cooler 2000-03-14 12:10:00
经常可以看到很多网站提供这样的下载超链:
<a href="download.pl?target=1233">点击下载</a>
请问这种CGI程序是如何实现非HTML格式的提交的呢?
也就是点击后将出现下载文件时出现的文件保存框
我试过在CGI程序中返回:
Location: http://localhost/some.mp3\n\n
但IE只是把它自动下载到本地TEMP目录并调用WINAMP播放,并没有请求我保存。

请问应该怎么做么?






...全文
635 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nagar 2000-03-30
  • 打赏
  • 举报
回复
在你打印content-type;application/octet-stream\n\n之前,先打印
Content-Dispostion: filename=*****,***** 是你的文件名.
上面的话可能不准确,你可找一个用于上传的perl程序,里面会有正确的拼写.
同时,content-type;application/octet-stream\n\n,改为
content-type;application/binary-stream\n\n可能会更准确.
如果还不行,你真的很急的话,可mailto: nagar_cn@sina.com.

cooler 2000-03-19
  • 打赏
  • 举报
回复
对不起,这几天联不上来,所以分数打晚了,现在我有另外的一个问题,
就是在使用content-type;application/octet-stream\n\n提交后,
我如何告知web服务器我的文件名呢?
我现在从浏览器中获得的全是一模一样的文件名.虽然内容都是正确的
sunsetyang 2000-03-14
  • 打赏
  • 举报
回复
在RFC1521中的描述似乎可以使用:
“content-type;application/octet-stream type=xxx"
来避免浏览器作自动处理。xxx可以是一个未注册的类型。
sunsetyang 2000-03-14
  • 打赏
  • 举报
回复
这只要用cgi生成正确的头信息即可:一般的浏览器如果能够识别下载的类型的
话,它就会缺省的区打开它。你可以在CGI中输出头信息中加入:
"Content-type:application/octet-stream\r\n\r\n"
然后后面接着输出文件流。但对于浏览器是别的类型,如jpeg,gif,txt等,
它还是将打开它的。

2,204

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 CGI
社区管理员
  • CGI社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧