libcurl:ftp上传的文件名在#字符后被删除

时间:2013-07-18 18:25:41

标签: c libcurl

我使用libcurl使用一些简单的示例代码将文件上传到FTP。文件上传成功,但如果我使用'#'字符,我选择的名称将被删除。

我将REMOTE_URL设置为“ftp://myftp:soMePassWord@mywebsite.net/ABC#EFG.dat”调用curl_easy_setopt(curl,CURLOPT_URL,REMOTE_URL),但我在FTP上看到的输出文件名是“ABC”(没有扩展名)。在#字符所在的任何地方,名称总是被切断。

我正在使用libcurl 7.21.7.0。

1 个答案:

答案 0 :(得分:3)

解决方案是将#网址编码为%23。因为#标识了fragment identifier的开头。

From curl docs:

  

从版本7.20.0开始,URI的片段部分不会作为路径的一部分发送,这是以前的情况。