【发布时间】:2012-12-19 17:42:55
【问题描述】:
我正在尝试对动态制作的 HTML 文件(使用文件放置内容)和 shh2 库进行 SFTP。
这是我到目前为止所得到的,apache 报告它无法发送,因为本地磁盘上不存在该文件:
$pageBody = '<body>
<div id="canvas_container">
<canvas id="designer_canvas" width="430" height="415">
</canvas>
</div>
<div style="display:none" id="share_design_details">
<li>'.$mc1.'</li><li>'.$mc1.'</li><li>'.$mc2.'</li><li>'.$sp.'</li><li>'.$p.'</li><li>'.$c.'</li></div>
<div id="test">This design is called : '.$designName.'</div></body>' ;
$newFile = file_put_contents('newfile.html',$pageBody);
$connection = ssh2_connect('myhost.com', 22);
ssh2_auth_password($connection, 'myuser', 'mypass');
$sftp = ssh2_sftp($connection);
ssh2_scp_send($connection, $newFile, $newFile, 0644);
【问题讨论】:
-
php.net/file_put_contents 返回真或假,但 ssh2_scp_send() 需要文件路径
-
如何修改发送以便上传文件而无需在本地磁盘上创建文件?
-
我不认为你可以。我会说只是将文件名传递给它,然后删除它
-
干杯,如果有办法,我会保持打开状态,但将其作为答案发布,因为它可能对其他人有用。
-
参见示例 #1 通过 SFTP 在php.net/manual/en/function.ssh2-sftp.php 打开文件 — 只需打开文件进行写入而不是读取