如何解决将文件保存在 sftp 服务器上的 php
我使用Dropzone上传文件时遇到问题,必须保存在sftp服务器上,与服务器的连接正常。
警告:fopen(ssh2.sftp://Resource id #624/DossierTest/Extranet.png): 无法打开流:操作失败
然而,我测试了例如创建一个文件,不用担心..我不知道该怎么做!
这是我的代码:
$conn_id = ssh2_connect($ftp_server,22) or die("Erreur de connexion avec le serveur FTP");
$login_result = ssh2_auth_password($conn_id,$ftp_user_name,$ftp_user_pass);
if ((!$conn_id) || (!$login_result)) { // check connection
// wont ever hit this,b/c of the die call on ftp_login
$errorMessage= "<span style='color:#FF0000'><h2>FTP connection has Failed! <br />";
$errorMessage += "Attempted to connect to $ftp_server for user $ftp_user_name</h2></span>";
exit;
} else {
$message = "Connected to $ftp_server,for user $ftp_user_name <br />";
//echo "Connected to $ftp_server,for user $ftp_user_name <br />";
$sftp = ssh2_sftp($conn_id);
$stream = fopen("ssh2.sftp://$sftp/DossierTest/$file_name","w");
$file = file_get_contents($local_path);
fwrite($stream,$file);
fclose($stream);`
我正在尝试使用 ssh2_scp_send 但我不知道在“local_file”和“remote_file”中放什么 这是文件名还是文件的绝对路径??
我试过:
ssh2_scp_send($conn_id,$local_path,"ssh2.sftp://".intval($sftp)."/DossierTest/$file_name");
我有这个错误:
警告:ssh2_scp_send():创建远程文件失败:(null)
我试过:
ssh2_scp_send($conn_id,"/DossierTest/$file_name");
它也不起作用!
在 locale_path 我有路径 "c:/wamp32/tmp/PHP9356.tmp" ??好吗 ?
我承认我迷路了!!我正在寻找解决方案的 3 天!!
没人帮我??
我真的很郁闷!
if ((!$conn_id) || (!$login_result)) { // check connection
// wont ever hit this,b/c of the die call on ftp_login
$errorMessage= "<span style='color:#FF0000'><h2>FTP connection has Failed! <br />";
$errorMessage += "Attempted to connect to $ftp_server for user $ftp_user_name</h2></span>";
exit;
} else {
$message = "Connected to $ftp_server,for user $ftp_user_name <br />";
//echo "Connected to $ftp_server,for user $ftp_user_name <br />";
$sftp = ssh2_sftp($conn_id);
ssh2_scp_send($conn_id,"/in/$file_name");
另一方面,当我去查看服务器时,发送的文件未找到!!
解决方法
您的 $sftp
变量包含一个 SSH2 SFTP 资源,因此您不能像在调用 fopen
时在代码中那样直接连接它。
根据 PHP documentation,您需要在调用 fopen
时获取 SSH2 SFTP 资源的整数:
fopen("ssh2.sftp://" . intval($sftp) . "/DossierTest/$file_name","w");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。