http://aawwmate.blog.163.com/blog/static/77528256201092733950315/

indy idhttpserver有关下载的两个问题

2010-10-27 15:39:50|  分类: DELPHI|举报|字号 订阅

 
 

1、IdHttpServer返回网页浏览器没直接显示,而是弹出下载对话框的解决方法

最近用Indy10的TIdHttpServer写一个简单的http服务器,原来按网上一个indy9的方法返回服务器目录下的一个html文档,代码如下:

procedure TForm3.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
const s='D:\MyVcl\Test\idCGIRunner\server\web\index.html';
begin
   //....
AResponseInfo.ServeFile(AContext,s);

//...
end;

结果在在游览器里打开时老出现下载对话框.试了好久,查看生成的http头如下:

Connection: close
Content-Disposition: attachment: filename="index.html";
Content-Type: text/html
Content-Length: 1265

原来它把网页当附件传回来了,再跟Idhttpserver的代码,发现当AResponseInfo.ContentDisposition为空时它会自己加上attachment: filename="index.html";这个参数,经试验,当给AResponseInfo.ContentDisposition随便设一个值结果都是正常的.不过网上查看Content-Disposition的资料说正规的应该有个inline的参数......因此,改成下面就一切OK了:

procedure TForm3.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
const s='D:\MyVcl\Test\idCGIRunner\server\web\index.html';
begin
AResponseInfo.ContentDisposition:=Format('inline: filename="%s"',[ExtractFileName(s)]);
AResponseInfo.ServeFile(AContext,s);
end;

2、下载文件时,直接从网页打开而没有弹出保存对话框的问题解决

AResponseInfo.CustomHeaders.Values['Content-Disposition'] :='attachment; filename="'+文件名+'"';

 
 
 
 
阅读(1121)| 评论(0)

最新文章

  1. JavaWeb_day08_EL JSTL
  2. Go简介
  3. n个元素的入栈顺序有多少种出栈顺序?
  4. ActiveX控件打包、签名、嵌入详解
  5. 标准C++中的string类的用法总结
  6. 突破自我,开源NetWorkSocket通讯组件
  7. Loadrunner的字符串函数
  8. scikit-learn——快速入门
  9. Swift实战-豆瓣电台(六)视图跳转,传参及回跳
  10. OC语言-01类和对象
  11. html的input输入框提示信息 点击隐藏
  12. ListActivity ListView 使用 介绍 用法
  13. uva11722 - Joining with Friend(几何概率)
  14. 在Windows下使用Hexo+GithubPage搭建博客的过程
  15. 【NO.2】Jmeter-安装Jmeter - 在Linux环境安装Jmeter - 在Windows环境安装Jmeter
  16. (NO.00003)iOS游戏简单的机器人投射游戏成形记(十二)
  17. android基础---->Broadcast的使用
  18. python ---16 初识面向对象
  19. .NET 开源GIS项目
  20. 详解C#委托和事件(二)

热门文章

  1. JDK的下载与Java运行环境
  2. C#根据出生日期和当前日期计算精确年龄
  3. BCR-ABL融合基因及检测
  4. java 进销存管理 商户管理 库存管理 springmvc SSM 项目源码
  5. Vue+elementui 实现复杂表头和动态增加列的二维表格
  6. 从excel表中生成批量SQL
  7. Oracle package demo 包
  8. tomcat启动报错:Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
  9. Redis 复制功能详解
  10. python3-调用函数