delphi 如何获取IE下载链接的文件名

时间:2022-12-31 09:44:33
delphi 如何获取IE下载链接的文件名
比如这个
http://common/fileupload/downloadFileServlet.do?fileId=4028829e4edfedge

我如何获取下载的文件名;不是=号后面的内容

9 个解决方案

#1


没看明白你到底想获取啥,请明示。

#2


页面无法访问

#3


引用 1 楼 pathletboy 的回复:
没看明白你到底想获取啥,请明示。
获取地址的文件名

#4


引用 2 楼 ksrsoft 的回复:
页面无法访问
http://cywl.jb51.net:81/201209/books/W3CSchool_jb51net.rar  比如这个我知道分割字符串;那我说的那种类型怎么获取到文件名

#5


引用 3 楼 qq_29570025 的回复:
Quote: 引用 1 楼 pathletboy 的回复:

没看明白你到底想获取啥,请明示。
获取地址的文件名


是要获取这个
引用
downloadFileServlet.do
的意思?

#6


引用 5 楼 pathletboy 的回复:
Quote: 引用 3 楼 qq_29570025 的回复:

Quote: 引用 1 楼 pathletboy 的回复:

没看明白你到底想获取啥,请明示。
获取地址的文件名


是要获取这个
引用
downloadFileServlet.do
的意思?

就是下载地址里面不一定包含下载文件名;如何获取实际的文件名

#7


引用 6 楼 qq_29570025的回复:
Quote: 引用 5 楼 pathletboy 的回复:

Quote: 引用 3 楼 qq_29570025 的回复:

Quote: 引用 1 楼 pathletboy 的回复:

没看明白你到底想获取啥,请明示。
获取地址的文件名


是要获取这个
引用
downloadFileServlet.do
的意思?

就是下载地址里面不一定包含下载文件名;如何获取实际的文件名

最好给个示例网址,你楼顶给的那个打不开的

#8


读HTTP响应Header里面的Content-Disposition就能得到文件名


Content-disposition 是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。当 Internet Explorer 接收到头时,它会激活文件下载对话框,它的文件名框自动填充了头中指定的文件名。(请注意,这是设计导致的;无法使用此功能将文档保存到用户的计算机上,而不向用户询问保存位置。)   

        服务端向客户端游览器发送文件时,如果是浏览器支持的文件类型,一般会默认使用浏览器打开,比如txt、jpg等,会直接在浏览器中显示,如果需要提示用户保存,就要利用Content-Disposition进行一下处理,关键在于一定要加上attachment:

Response.AppendHeader("Content-Disposition","attachment;filename=FileName.txt");

#9


IdHTTP1.Head(adress);
 fileName:=IdHTTP1.Response.ContentDisposition; 

 fileSize := IdHTTP1.Response.ContentLength;

#1


没看明白你到底想获取啥,请明示。

#2


页面无法访问

#3


引用 1 楼 pathletboy 的回复:
没看明白你到底想获取啥,请明示。
获取地址的文件名

#4


引用 2 楼 ksrsoft 的回复:
页面无法访问
http://cywl.jb51.net:81/201209/books/W3CSchool_jb51net.rar  比如这个我知道分割字符串;那我说的那种类型怎么获取到文件名

#5


引用 3 楼 qq_29570025 的回复:
Quote: 引用 1 楼 pathletboy 的回复:

没看明白你到底想获取啥,请明示。
获取地址的文件名


是要获取这个
引用
downloadFileServlet.do
的意思?

#6


引用 5 楼 pathletboy 的回复:
Quote: 引用 3 楼 qq_29570025 的回复:

Quote: 引用 1 楼 pathletboy 的回复:

没看明白你到底想获取啥,请明示。
获取地址的文件名


是要获取这个
引用
downloadFileServlet.do
的意思?

就是下载地址里面不一定包含下载文件名;如何获取实际的文件名

#7


引用 6 楼 qq_29570025的回复:
Quote: 引用 5 楼 pathletboy 的回复:

Quote: 引用 3 楼 qq_29570025 的回复:

Quote: 引用 1 楼 pathletboy 的回复:

没看明白你到底想获取啥,请明示。
获取地址的文件名


是要获取这个
引用
downloadFileServlet.do
的意思?

就是下载地址里面不一定包含下载文件名;如何获取实际的文件名

最好给个示例网址,你楼顶给的那个打不开的

#8


读HTTP响应Header里面的Content-Disposition就能得到文件名


Content-disposition 是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。当 Internet Explorer 接收到头时,它会激活文件下载对话框,它的文件名框自动填充了头中指定的文件名。(请注意,这是设计导致的;无法使用此功能将文档保存到用户的计算机上,而不向用户询问保存位置。)   

        服务端向客户端游览器发送文件时,如果是浏览器支持的文件类型,一般会默认使用浏览器打开,比如txt、jpg等,会直接在浏览器中显示,如果需要提示用户保存,就要利用Content-Disposition进行一下处理,关键在于一定要加上attachment:

Response.AppendHeader("Content-Disposition","attachment;filename=FileName.txt");

#9


IdHTTP1.Head(adress);
 fileName:=IdHTTP1.Response.ContentDisposition; 

 fileSize := IdHTTP1.Response.ContentLength;