【问题标题】:Can I upload a desktop file to a remote SSH server via php?我可以通过 php 将桌面文件上传到远程 SSH 服务器吗?
【发布时间】:2019-07-26 18:15:02
【问题描述】:

首先,我对 php 很陌生,所以请耐心等待。我想知道是否可以使用 php 将桌面上的文件上传到远程 SHH 服务器。如果有帮助,我有 IP 地址、端口号、用户名和密码,但不知道如何解决这个问题。我读到使用 html 帖子只允许您将文件上传到本地服务器,而不是远程服务器。有什么想法吗?

【问题讨论】:

  • can - 你是否应该是一个不同的问题;可能会有更好的方法。
  • @CD001 那么,我将把我的桌面文件的路径放在这里: $stream = fopen("ssh2.sftp://$sftp/path/to/file", 'r') ;
  • $stream 将是远程服务器的文件系统流,您希望在桌面上获取文件的内容(例如file_get_contents)并将其写入该流(@ 987654325@) 将副本放在远程服务器上。
  • @CD001 你认为你可以提供一个代码示例吗?
  • 快速搜索打开了这个:stackoverflow.com/questions/9572314/uploading-files-with-sftp - 似乎已经有一个内置功能可以做到这一点stream_copy_to_stream ...

标签: php ssh


【解决方案1】:

Phpseclib 有一个基于类的接口,用于与 SFTP 交互。

例如:

require __DIR__ . '/vendor/autoload.php';

use phpseclib\Net\SFTP;

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

// puts a three-byte file named filename.remote on the SFTP server
$sftp->put('filename.remote', 'xxx');
// puts an x-byte file named filename.remote on the SFTP server,
// where x is the size of filename.local
$sftp->put('filename.remote', 'filename.local', SFTP::SOURCE_LOCAL_FILE);

SFTP 文档:http://phpseclib.sourceforge.net/sftp/intro.html

【讨论】:

  • 你知道如何使用 ssh2 函数来做到这一点吗?它是否允许我从桌面上传到远程服务器?
  • 如果您的 PHP 版本包含扩展,您只能使用 ssh2 函数。
  • 我确实有扩展。你知道有什么办法吗?
猜你喜欢
  • 2012-08-27
  • 2011-08-23
  • 1970-01-01
  • 2019-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多