idhttpserver 下载文件
procedure TForm30.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
const
WEBROOT = 'C:\www';
const sb='C:\www\index.html';
var ss,s,s1,s3,s2:string; wenjian1,wenjian2,wenjian3:tstringlist; f1,f2,f3:string;
I: Integer;
var
RequestDocument:string;
begin
(* wenjian1:=tstringlist.Create;
if fileexists('c:\3fangan.txt') then
begin
wenjian1.LoadFromFile('c:\3fangan.txt');
wenjian1.Text:=trim(wenjian1.text);
end else
begin
{ s:='<html> <body>'+' ' +'</body></html>';
AResponseInfo.ContentText:=s;
exit; }
end;
//</br>
memo1.Lines.Add(ARequestInfo.Document) ;
memo1.Lines.Add(arequestinfo.Params.Values['t1']) ;
memo1.Lines.Add(arequestinfo.Params.Values['t2']);
f1:='-1';f2:='-1';f3:='-1';
f1:=ARequestInfo.Document ;
f2:=arequestinfo.Params.Values['t1'] ;
f3:=arequestinfo.Params.Values['t2'];
if f2='-1' then begin // 默认访问
//-----------------------换行 变 </br>
ss:='';
for I := 0 to wenjian1.Count -1 do
begin
if length(trim(wenjian1.Strings[i]))<1 then continue;
ss:=ss+wenjian1.Strings[i]+'上面是第'+inttostr(i)+'个推送'+'</br>';
end;
ss:=copy(ss,1,length(ss)-5);
// wenjian1.Text:=ss;
//======================换行 变 </br>
wenjian1.Free;
end;
if f2='qing0' then //清除数据
begin
wenjian1.Clear;
wenjian1.SaveToFile('c:\3fangan.txt');
wenjian1.Free;
ss:='';
end;
if f2='1' then
begin
f3:=httpdecode(ARequestInfo.FormParams);// 这个是 post 的内容
// showmessage(f3);
wenjian1.Add(f3);
wenjian1.SaveToFile('c:\3fangan.txt');
//-----------------------换行 变 </br>
ss:='';
for I := 0 to wenjian1.Count -1 do
begin
if length(trim(wenjian1.Strings[i]))<1 then continue;
ss:=ss+wenjian1.Strings[i]+'上面是第'+inttostr(i)+'个推送'+'</br>';
end;
ss:=copy(ss,1,length(ss)-5);
// wenjian1.Text:=ss;
//======================换行 变 </br>
wenjian1.Free;
// showmessage(ss);
end;
AResponseInfo.ContentEncoding:='utf-8';
AResponseInfo.ContentType := 'text/html; charset=gb2312';
s:='<html> <body>'+ss +'</body></html>';
AResponseInfo.ContentText:=s; *)
//<BUTTON onclick="open('c:\\','_blank','',false)">打开</BUTTON>
{
AResponseInfo.ContentEncoding:='utf-8';
AResponseInfo.ContentType := 'text/html; charset=gb2312';
ss:='<BUTTON onclick="open(''c:\\'',''_blank'','''',false)">打开</BUTTON> ';
s:='<html> <body>'+ss +'</body></html>';
AResponseInfo.ContentText:=s;
// aresponseinfo.ServeFile(AContext,'c:\');
AResponseInfo.ContentText:='c:\abc.txt' ; }
{
RequestDocument:=LowerCase(ARequestInfo.Document);
if RequestDocument='/' then
RequestDocument:='/index.html';
if FileExists(WEBROOT+RequestDocument) then
begin
AResponseInfo.ContentStream:=TFileStream.Create(WEBROOT+RequestDocument, fmOpenRead + fmShareDenyWrite);
end
else
begin
AResponseInfo.ResponseNo := 404;
end;
AResponseInfo.Server:='IIS/6.0';
AResponseInfo.CacheControl:='no-cache';
AResponseInfo.Pragma:='no-cache';
AResponseInfo.Date:=Now;
}
// AResponseInfo.ContentEncoding:='utf-8';
//AResponseInfo.ContentType := 'text/html; charset=gb2312';
//AResponseInfo.ContentDisposition:=Format('inline: filename="%s"',[ExtractFileName(s)]);
//AResponseInfo.CustomHeaders.Values['Content-Disposition'] :='attachment; filename="'+'192.168.0.101:12345/abc.txt'+'"';
//AResponseInfo.ServeFile(AContext,'192.168.0.101:12345/abc.txt');
//response
AResponseInfo.ContentType :='application/pdf';
//GetFileMIMEType
//AResponseInfo.ContentType := GetMIMEType(LocalDoc);
//application/x-rar-compressed
//aResponseInfo.ContentType := 'application/x-rar-compressed';
AResponseInfo.ServeFile(AContext,'c:\www\a.pdf');
end;
idhttpserver 下载文件的更多相关文章
- 怎样用idhttpserver代替IIS让用户浏览html或下载文件 http://bbs.csdn.net/topics/360248674
怎样用idhttpserver代替IIS让用户浏览html或下载文件 更多0分享到: 相关知识库: C# 虚拟现实(VR) Node.js 算法与数据结构 对我有用[0] 丢个板砖[0] ...
- Java下载文件(流的形式)
@RequestMapping("download") @ResponseBody public void download(HttpServletResponse respons ...
- 使用批处理文件在FTP服务器 上传下载文件
1.从ftp服务器根目录文件夹下的文件到指定的文件夹下 格式:ftp -s:[配置文件] [ftp地址] 如:ftp -s:c:\vc\ftpconfig.txt 192.168.1.1 建立一个 ...
- 通过form表单的形式下载文件。
在项目中遇到问题,要求动态拼接uri下载文件.但是由于项目的安全拦截导致window.location.href 和 window.open等新建窗口的方法都不行. 无意间百度到了通过form表单来下 ...
- SecureCRT上传和下载文件
SecureCRT上传和下载文件(下载默认目录) SecureCR 下的文件传输协议有ASCII .Xmodem .Ymodem .Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. ...
- HTTP 错误 404.3 – Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
今天,在vs2013中新建了一个placard.json文件,当我用jq读取它的时候,去提示404,直接在浏览器访问这个文件,提示: HTTP 错误 404.3 – Not Found 由于扩展配置问 ...
- FTP下载文件失败
这几天的定时任务下载文件的脚本失败了. 于是手工执行测试,发现报550 Permission denied. Passive mode refused. 意思就是被动模式下,没有权限获取文件. 解决方 ...
- 如何使用FileZilla上传和下载文件
一.使用FileZilla上传文件 1 打开 FileZilla 按照如下图所示,填写远程 Linux 的 IP ,用户名,密码,还有端口号(默认22) 2 选中左边需要上传的文件,然后拖到右边,等待 ...
- 开发板tftp下载文件
搭建过程: 1.安装相关软件包:tftpd(服务端),tftp(客户端),xinetd sudo apt-get install tftpd tftp xinetd 2.建立配置文件(蓝色的目录是可以 ...
随机推荐
- [BZOJ 2989]数列(CDQ 分治+曼哈顿距离与切比雪夫距离的转化)
[BZOJ 2989]数列(CDQ 分治) 题面 给定一个长度为n的正整数数列a[i]. 定义2个位置的graze值为两者位置差与数值差的和,即graze(x,y)=|x-y|+|a[x]-a[y]| ...
- python Calendar 模块导入及用法
Calendar 是python 日历模块,此模块的函数都是日历相关的,例如打印某月的字符月历,星期之类的模块,下面剖析python Calendar 模块导入及用法. 1,python导入日历模块 ...
- 详解 HiveUDF 函数
更多精彩原创内容请关注:JavaInterview,欢迎 star,支持鼓励以下作者,万分感谢. Hive 函数 相信大家对 Hive 都不陌生,那么大家肯定用过 Hive 里面各种各样的函数.可能大 ...
- .net AutoMapper(对象与对象之间的映射器) 的简单使用
1.注册 /// <summary> /// AutoMapper 注册 /// </summary> public class AutoMapperConf ...
- sql基本语法大全
一.定义变量--简单赋值 declare @a intset @a=5 print @a --使用select语句赋值 declare @user1 nvarchar(50) select @user ...
- js中基本数据类型与引用数据类型的本质区别
代码 /** * 基本数据类型:string, number, boolean, null, undefined. * * 说明: * 基本数据类型的变量是保存在栈内存中的,基本数据类型的值 * 直接 ...
- 查询sql server占用内存的情况
se master go select * from sysperfinfo where counter_name like '%Total Server Memory (KB)%' go
- 基于Xilinx Kintex-7 XC7K325T 的FMC USB3.0 SATA 四路光纤数据转发卡
基于Xilinx Kintex-7 XC7K325T 的FMC USB3.0 SATA 四路光纤数据转发卡 1. 板卡概述 本板卡基于Xilinx公司的FPGAXC7K325T-2FFG900 芯片, ...
- [NOI2015]程序自动分析(并查集,离散化)
[NOI2015]程序自动分析 Description 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设x1,x2,x3,-代表程序中出现的 ...
- 解压版(.zip)的MySQL数据库下载安装
1.首先到mysql官网下载(https://dev.mysql.com/downloads/mysql/5.6.html#downloads): 2.解压下载好的压缩包文件,并将解压后的文件夹放到合 ...