我使用URLDownloadToFile在Delphi中下载文件.在url中没有文件的真实名称.是否可以仅指定文件的路径,保留默认名称,即资源管理器显示?
你处于陷阱状态.您需要提供URLDownloadToFile()文件名,但您必须首先请求URL以发现它是否具有自己的文件名.
你有两个选择:
HEAD首先向URL 发送单独的请求,然后检查Content-Disposition响应标头(如果存在).您可以使用HttpSendRequest(),并HttpQueryInfo()为或任何其他HTTP库.然后,您可以根据需要格式化文件名,然后将URL下载到该文件名.
使用临时文件名进行下载,然后检查Content-Disposition响应标头(如果存在),并根据需要重命名该文件.要从中获取响应头,URLDownloadToFile()必须编写实现IBindStatusCallback和IHttpNegotiateCOM接口的类,然后将该类的实例传递给lpfnCB参数.响应标头将传递给您的IHttpNegotiate.OnResponse()实现.