尝试使用curl FTP将文件 HU98373 + TRRepr#o4_201702061135_34 从本地系统复制到远程目标。
在远程系统中,它创建了 HU98373 + TRRepr 但 HU98373 + TRRepr#o4_201702061135_34 的文件。我不知道为什么不考虑#'#'字符
请检查以下代码。
remoteFileUrl = ftp://IPADRESS/HOME/HU98373+TRRepr#o4_201702061135_34.tmp/C20170206.1135-20170206.1140
curl_easy_setopt(m_CurlSessionHandle, CURLOPT_URL, remoteFileUrl);
curl_easy_setopt(m_CurlSessionHandle, CURLOPT_UPLOAD, ON);
// Set the input local file handle
curl_easy_setopt(m_CurlSessionHandle, CURLOPT_READDATA, localFileHandle);
// Set on/off all wanted options
// Enable ftp data connection
curl_easy_setopt(m_CurlSessionHandle, CURLOPT_NOBODY, OFF);
// Create missing directory into FTP path
curl_easy_setopt(m_CurlSessionHandle, CURLOPT_FTP_CREATE_MISSING_DIRS , ON) ;
// Set the progress function, in oder to check the stop transfer request
curl_easy_setopt(m_CurlSessionHandle, CURLOPT_NOPROGRESS, OFF);
curl_easy_setopt(m_CurlSessionHandle, CURLOPT_PROGRESSFUNCTION, progressCb);
curl_easy_setopt(m_CurlSessionHandle, CURLOPT_PROGRESSDATA, this);
CURLcode curlOperationResult = curl_easy_perform(m_CurlSessionHandle);
任何人都可以帮助我吗
答案 0 :(得分:0)
网址由以下部分组成:
scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]
characeter #
表示URL片段。您必须对#
字符进行URL编码,以使其不被解释为片段分隔符。
一旦编码,服务器将按预期解析URL,并生成正确的文件名。
以下问题显示了如何在C ++中执行此操作: