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

indy idhttpserver有关下载的两个问题

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

下载LOFTER我的照片书  |

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)

转载于:https://www.cnblogs.com/delphi-xe5/p/5457069.html

indy idhttpserver有关下载的两个问题相关推荐

  1. 解决微信扫码下载的两个方法

    解决微信扫码下载有两个方法:一是去腾讯开发平台http://open.qq.com/上传自己的应用,二是弄一个提示页,提示用户用其他浏览器打开链接. 上传应用到腾讯开发平台 把应用上传到腾讯开发平台, ...

  2. springside4配置环境时无法下载到两个核心包

    最近在搭建 springside4开发环境,配置环境时无法下载到两个核心包: 查看官方文档,发现江南白衣已经对这个问题做了重大提示"要自己build" 先build test 里的 ...

  3. STM32_基础入门_程序下载的两种方式

    一.ISP串口下载 1.所涉及工具:MDK+FlyMcu 2.硬件连接 3.连接步骤 1.搜索并选择对应串口 2.选择要下载的hex文件,将"编程前重装文件"打勾 3.勾选&quo ...

  4. 免费资源下载:两套超棒的UI界面设计素材集

    日期:2012-7-6  来源:GBin1.com 每周我们都会在互联网上给大家收集最新最酷的web免费素材,今天我们带给大家两套超棒的UI界面素材集.相信大家如果应用到自己的网站开发和设计中,肯定会 ...

  5. python-网络图片下载(两种方式)

    利用python进行网络图片下载(两种方式) 1:方式一 1:代码 # coding=utf-8 """ @author: jiajiknag 程序功能: 图片批量下载_ ...

  6. 前端实现HTML转PDF下载的两种方式

    方式一:使用html2canvas和jspdf插件实现 该方式是通过html2canvas将HTML页面转换成图片,然后再通过jspdf将图片的base64生成为pdf文件.实现步骤如下: 1,下载插 ...

  7. 将B站上下载的两个m4s文件合成为mp4文件

    如何将B站下载的video.m4s和audio.m4s合成test的MP4文件 下载程序的安装包 链接:https://pan.baidu.com/s/1Ce4zv5wXIvAWyGEXXY4Y3Q ...

  8. 下载网络图片两种方式

    比如因特网上有一图片资源http://img.7799520.com/00356c0e-1725-4dc2-b091-5db958b6c637,现在要把该资源下载到本地,下面介绍如下两种方式. 方式一 ...

  9. JS 下载文件两种方式总结

    后端返回Blob对象(文件流),完成导出.下载功能: 1.介绍Blob Blob Blob 对象表示一个不可变.原始数据的类文件对象.它的数据可以按文本或二进制的格式进行读取,也可以转换成 Reada ...

最新文章

  1. 如何为模型选择合适的损失函数?所有ML学习者应该知道的5种回归损失函数
  2. JAVA 线上故障排查完整套路!牛掰!
  3. 查看mysql数据库大小、表大小和最后修改时间
  4. 期望最大化(EM)算法
  5. MySQL数据库如何杀死会话_如何彻底杀掉不良用户会话
  6. ASP实例:利用缓存提高数据显示效率
  7. when is oPropagatedProperties of detail view being generated
  8. 学习笔记3-C语言-基础
  9. Java最后_Java最后一次总结
  10. Activity与AppCompatActivity全屏实现方法
  11. Spring(3)---spring IOC实例
  12. Spring Session + Redis 实现 Session 共享,附带 Nginx 集群
  13. 电赛机器视觉——激光点定位
  14. 华为、中兴嵌入式(C)笔试题
  15. 计算机无法识别外接光驱,【win7无法识别光驱怎么办】win7外置光驱无法识别
  16. mysql错误1197,【MySQL故障处理】 Seconds_Behind_Master= NULL Error_code: 1197
  17. ArcGIS地理要素数据获取及地图制作
  18. 自然语言处理之新手上路
  19. 前端三件套系例之CSS——CSS3基础样式
  20. shell 文件连接

热门文章

  1. python sqlite
  2. werkzeug SharedDataMiddleware
  3. python Iterable
  4. javascript arraybuffer
  5. Java MyBatis 别名
  6. s7填表指令att_第五章 S7-200 指令系统.ppt
  7. c语言输出教学日历表 节假日突出,[蓝桥杯][算法提高VIP]任意年月日历输出 (C语言代码)...
  8. nsx很可爱的公众号 vSAN 文章合集
  9. 高可用性及容灾的几个衡量指标
  10. 知行合一!如何做好项目经理?