当前位置: 首页 > 面试题库 >

使用SFTP上传文件

轩辕庆
2023-03-14
问题内容

我已经通过ftp成功上传了文件,但是现在我需要通过SFTP进行上传。我可以成功连接到远程服务器,创建文件并写入文件,但是无法将现有文件从本地服务器上载到远程服务器。ftp_put是否不通过sftp连接触发?

我的代码用来写文件:

//Send file via sftp to server

$strServer = "*****";
$strServerPort = "****";
$strServerUsername = "*****";
$strServerPassword = "*****";
$csv_filename = "Test_File.csv";

//connect to server
$resConnection = ssh2_connect($strServer, $strServerPort);

if(ssh2_auth_password($resConnection, $strServerUsername, $strServerPassword)){
    //Initialize SFTP subsystem

    echo "connected";
    $resSFTP = ssh2_sftp($resConnection);

    $resFile = fopen("ssh2.sftp://{$resSFTP}/".$csv_filename, 'w');
    fwrite($resFile, "Testing");
    fclose($resFile);

}else{
    echo "Unable to authenticate on server";
}

有没有人成功抓取本地文件并通过上述方法使用sftp上传?一个例子将不胜感激。

谢谢


问题答案:

通过上述方法(涉及sftp),您可以使用stream_copy_to_stream:

$resFile = fopen("ssh2.sftp://{$resSFTP}/".$csv_filename, 'w');
$srcFile = fopen("/home/myusername/".$csv_filename, 'r');
$writtenBytes = stream_copy_to_stream($srcFile, $resFile);
fclose($resFile);
fclose($srcFile);

您也可以尝试使用ssh2_scp_send



 类似资料:
  • 我正试图将文件上载到linux服务器,但我收到一个错误,错误是:“”。我不知道我的代码是否错误,或者连接是否被服务器阻止了——使用相同的细节,我可以将服务器与FileZilla连接起来。 我的代码:

  • 我的本地计算机上有一个文件。我有一个Perl脚本可以通过SFTP连接将此文件复制到远程位置()。

  • 本文向大家介绍Java使用SFTP上传文件到服务器的简单使用,包括了Java使用SFTP上传文件到服务器的简单使用的使用技巧和注意事项,需要的朋友参考一下 最近用到SFTP上传文件查找了一些资料后自己做了一点总结,方便以后的查询。具体代码如下所示: 这里的用户名密码都是自己设置,这里的方法进行了简单的封装,方便使用。 以上所述是小编给大家介绍的Java使用SFTP上传文件到服务器的简单使用,希望对

  • 我需要在SI中构建一个应用程序,它读取一个输入目录,该目录可能包含1000个文件,并将它们复制到远程服务器,例如10个服务器,处理器实例将在其中接收它们进行处理。文件的移动应该是循环方式,以便在处理它们时不会给任何服务器带来额外的负担。再详细一点——假设我们在输入目录中有10个文件,那么应用程序应该在服务器1上复制文件1,在服务器2上复制文件2......服务器10上的文件10。 顺序并不重要,重

  • 本文向大家介绍利用nodejs监控文件变化并使用sftp上传到服务器,包括了利用nodejs监控文件变化并使用sftp上传到服务器的使用技巧和注意事项,需要的朋友参考一下 最近在用react+express做一个自己的工具型网站(其实就是夺宝岛抢拍器) 然后因为经常要改动,而且又要放到服务器上进行测试。总是要webpack,然后手动把文件上传上去,不胜其烦,索性搜索了下,直接写个能检测文件变化并自

  • 我正在尝试使用JSCH将两个文件上载到带有SFTP的服务器上。如果目录是空的,上传文件很好,但我想一遍又一遍地上传同一个文件(只是在里面改变一个id),但我不知道如何做到这一点。JSch中有一些名为OVERWRITE的静态参数,但我无法找到如何使用它。 这是我当前的代码: