在libcurl中执行SFTP/FTP命令而不进行实际传输

在libcurl中执行SFTP/FTP命令而不进行实际传输,curl,ftp,libcurl,sftp,Curl,Ftp,Libcurl,Sftp,是否可以在libcurl中执行SFTP命令而不进行实际的文件传输尝试 我使用CURLOPT_QUOTE将命令设置为执行(实际上是文件删除),但在执行该操作后(执行成功,文件被删除),curl正在尝试上载或下载文件(基于CURLOPT_upload),因此我得到了CURLE_REMOTE_file NOT_FOUND错误代码 到目前为止,我所尝试的-不设置URL会导致“错误的URL错误”,设置CURLOPT_CONNECT_只会导致quote未执行。有什么标准的方法吗 curl\u global\

是否可以在libcurl中执行SFTP命令而不进行实际的文件传输尝试

我使用CURLOPT_QUOTE将命令设置为执行(实际上是文件删除),但在执行该操作后(执行成功,文件被删除),curl正在尝试上载或下载文件(基于CURLOPT_upload),因此我得到了CURLE_REMOTE_file NOT_FOUND错误代码

到目前为止,我所尝试的-不设置URL会导致“错误的URL错误”,设置CURLOPT_CONNECT_只会导致quote未执行。有什么标准的方法吗

curl\u global\u init(curl\u global\u默认值);
char-temp[2000];
_snprintf(STRPARAM(temp),%s://%s:%d/%s”,“sftp”,m_url,m_端口,a_ftpPath);
curl_easy_setopt(m_curl,CURLOPT_URL,temp);
_snprintf(STRPARAM(temp),%s:%s,m_名称,m_通行证);
curl_easy_setopt(m_curl,CURLOPT_USERPWD,temp);
curl_easy_setopt(m_curl,CURLOPT_SSH_AUTH_类型,CURLSSH_AUTH_密码);
curl_easy_setopt(m_curl,CURLOPT_UPLOAD,0L);
curl_easy_setopt(m_curl,CURLOPT_READFUNCTION,NULL);
卷曲度(m_curl,CURLOPT_NOBODY,1L);
卷曲简易设置选项(m_卷曲,卷曲头,1L);
struct curl\u slist*headerlist=NULL;
_snprintf(STRPARAM(temp),“rm/%s”,a_ftpPath);
headerlist=curl\u slist\u append(headerlist,temp);
curl_easy_setopt(m_curl,CURLOPT,headerlist);
m_res=旋度,易于执行(m_旋度);
curl_easy_setopt(m_curl,CURLOPT,NULL);
卷曲头(m_卷曲头,卷曲头,0L);
curl_easy_setopt(m_curl,CURLOPT_NOBODY,0L);
卷曲列表(标题列表);
curl_global_cleanup();
是要求不转移“身体”的关键

您可以尝试:


使用CURLOPT\u NOBODY set时,libcurl quote也不会执行,文件保持不变,就像他们认为这是正常的一样,没有传输的quote是不可能的:(Curl faq不得不绕过问题3.4如何告诉Curl运行自定义FTP命令?您可以告诉Curl在文件传输之前和/或之后执行可选命令。请研究-Q/--quote选项。由于Curl用于文件传输,因此您不能使用Curl只执行FTP命令而不传输任何内容。因此,您必须方法指定一个URL,即使在做FTP命令时也要传送到/WORD。“他们”根本不认为你是在混合事情。我写了FAQ部分链接到上面。好,但是仍然没有任何CurLoptTo(执行引号)。如果没有它,所有的工作都很好,需要WFT32 C++应用程序的SFTP,所以PHP库不适合。
<?php
include('Net/SFTP.php');

$sftp = new Net_SFTP('www.domain.tld');
if (!$sftp->login('username', 'password')) {
    exit('Login Failed');
}

$sftp->delete('filename.remote'); // doesn't delete directories
// recursive delete
$sftp->delete('dirname.remote', true); // deletes a directory and all its contents
?>