首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >phpseclib没有上传正确的文件内容

phpseclib没有上传正确的文件内容
EN

Stack Overflow用户
提问于 2017-05-01 19:46:54
回答 1查看 2.8K关注 0票数 2

所以,它所做的就是成功地连接,然后上传文件logo.png,但是如果我使用html上传代码,文件的内容不是web主机上的内容,也不是用html上传的内容。它放在文件中的是第二个文件之间的实际文本,所以对于这个例子,logo.png的内容实际上是logo.png,而不是图片。

代码语言:javascript
运行
复制
require_once("ftp/vendor/autoload.php");

use phpseclib\Net\SFTP;

$sftp = new SFTP('SERVER');

if (!$sftp->login('USER', 'PW')) {
    throw new Exception('Login failed');
}

$sftp->put("/some/path/logo.png", "logo.png", NET_SFTP_LOCAL_FILE);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-01 21:37:42

如果您阅读文档,您会发现put()函数的第二个参数是$data,因此不是文件路径,而是要写入的实际数据:

function put($remote_file, $data, $mode = NET_SFTP_STRING, $start = -1, $local_start = -1) 默认情况下,NetSFTP::put()不从本地文件系统读取。$data直接转储到$remotefile中。..。

要上载本地文件,最简单的方法是将内容读入将传递给put()函数的一个变量:

代码语言:javascript
运行
复制
$data = file_get_contents("logo.png");
$sftp->put("/some/path/logo.png", $data);

编辑:您可能正在使用新版本的phpseclib,它的重命名这些常量使它们更像对象。对于新版本,您应该使用

代码语言:javascript
运行
复制
$sftp->put("/some/path/logo.png", "logo.png", SFTP::SOURCE_LOCAL_FILE);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43725452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档