MFC如何获取文件在HTTP服务器上的URL

时间:2021-06-30 17:49:40
目标:从HTTP服务器下载图片到本地,如 文件名test.png,下载到 “E:\\test.png”。
现用方法:已知test.png在HTTP服务器上的URL,通过wininet已实现下载功能。
想要修改之处:从服务器下载test.png前,只知道图片名为test.png,却不知道test.png在HTTP服务器上的URL。
问:怎么样获得test.png在HTTP服务器上的URL?使用MFC

自己已经考虑过的方法:CHttpFile::GetFileURL()  但此方法是在成功调用SendRequest()或OpenURL()之后才可以使用的。而要使用SendRequese()或OpenURL,需已知test.png在HTTP服务器上的URL。这与未知test.png在HTTP服务器上的URL前提矛盾。

求道友解答!

7 个解决方案

#1


你这个问题问得没人能回答。。。。首先URL地址的结构其实也跟文件路径一样,你给一个文件名,怎么可能知道在哪个目录。  当然也可以通过搜索方式便利出 但是如果有多个同名文件,你就无法区分了 。。

#2


引用 1 楼 flyound 的回复:
你这个问题问得没人能回答。。。。首先URL地址的结构其实也跟文件路径一样,你给一个文件名,怎么可能知道在哪个目录。  当然也可以通过搜索方式便利出 但是如果有多个同名文件,你就无法区分了 。。


换个方法:我给用socket给服务器发个消息,然后服务器把我想要的URL发给我。我用CString接收。可以实现吗?
如果可以实现,如何实现?服务器如何预先保存我所需的URL?

#3


MFC如何获取文件在HTTP服务器上的URL
在线等……

#4


哎~ 问题复杂了。
最简化的提问:使用MFC,如何获得文件在HTTP服务器上的URL?

#5


这样问就简单了,可以实现的,首先在HTTP服务器设置的时候设置一个专门的目录保存图片,然后同一个目录下的文件名称肯定是唯一的,那么http地址也是可以确定的,比如设置的http主目录下有个image目录,那么http地址前面肯定是固定的 http://ip地址也可以是域名/image/。这个时候可以通过socket接收客户端请求的文件名(可以通过http请求返回也可以没必要弄socket),服务器就可以直接在原来的http地址后面加上文件名即可。

#6


服务器目录设定是可以实现的,例如我指定:http://127.0.0.1/image/test.png
也就是说我已知这个路径,然后通过HTTP请求,获取此路径的URL?
如果是,请问MFC用什么去根据路径获得URL? 是GetFileURL()?

然后,弱弱的问一句,服务器上文件的路径和URL不是同一个概念吗?他俩有区别吗?

#7


引用 5 楼 flyound 的回复:
这样问就简单了,可以实现的,首先在HTTP服务器设置的时候设置一个专门的目录保存图片,然后同一个目录下的文件名称肯定是唯一的,那么http地址也是可以确定的,比如设置的http主目录下有个image目录,那么http地址前面肯定是固定的 http://ip地址也可以是域名/image/。这个时候可以通过socket接收客户端请求的文件名(可以通过http请求返回也可以没必要弄socket),服务器……

好吧,我理解错了。

明白了,就是我向服务器发送请求,服务器反馈给我文件URL。

#1


你这个问题问得没人能回答。。。。首先URL地址的结构其实也跟文件路径一样,你给一个文件名,怎么可能知道在哪个目录。  当然也可以通过搜索方式便利出 但是如果有多个同名文件,你就无法区分了 。。

#2


引用 1 楼 flyound 的回复:
你这个问题问得没人能回答。。。。首先URL地址的结构其实也跟文件路径一样,你给一个文件名,怎么可能知道在哪个目录。  当然也可以通过搜索方式便利出 但是如果有多个同名文件,你就无法区分了 。。


换个方法:我给用socket给服务器发个消息,然后服务器把我想要的URL发给我。我用CString接收。可以实现吗?
如果可以实现,如何实现?服务器如何预先保存我所需的URL?

#3


MFC如何获取文件在HTTP服务器上的URL
在线等……

#4


哎~ 问题复杂了。
最简化的提问:使用MFC,如何获得文件在HTTP服务器上的URL?

#5


这样问就简单了,可以实现的,首先在HTTP服务器设置的时候设置一个专门的目录保存图片,然后同一个目录下的文件名称肯定是唯一的,那么http地址也是可以确定的,比如设置的http主目录下有个image目录,那么http地址前面肯定是固定的 http://ip地址也可以是域名/image/。这个时候可以通过socket接收客户端请求的文件名(可以通过http请求返回也可以没必要弄socket),服务器就可以直接在原来的http地址后面加上文件名即可。

#6


服务器目录设定是可以实现的,例如我指定:http://127.0.0.1/image/test.png
也就是说我已知这个路径,然后通过HTTP请求,获取此路径的URL?
如果是,请问MFC用什么去根据路径获得URL? 是GetFileURL()?

然后,弱弱的问一句,服务器上文件的路径和URL不是同一个概念吗?他俩有区别吗?

#7


引用 5 楼 flyound 的回复:
这样问就简单了,可以实现的,首先在HTTP服务器设置的时候设置一个专门的目录保存图片,然后同一个目录下的文件名称肯定是唯一的,那么http地址也是可以确定的,比如设置的http主目录下有个image目录,那么http地址前面肯定是固定的 http://ip地址也可以是域名/image/。这个时候可以通过socket接收客户端请求的文件名(可以通过http请求返回也可以没必要弄socket),服务器……

好吧,我理解错了。

明白了,就是我向服务器发送请求,服务器反馈给我文件URL。