文件上传失败

问题描述 投票:0回答:1

我最近安装了 phpseclib 并尝试将简单的 CSV 文件上传到远程 SFTP 服务器,但没有成功。

本地文件在根目录,远程路径也是到根目录。

任何建议都会很棒。


   use phpseclib3\Net\SFTP;


   $sftp = new SFTP('IP'); 

   if (!$sftp->login('sftp_user', 'sftp_pass')) {
    exit('Login Failed');
   }


   $localCsvFile = 'filename.csv'; 
   $remoteCsvFile = '/';


   if ($sftp->put($remoteCsvFile, $localCsvFile, SFTP::SOURCE_LOCAL_FILE)) {
   echo 'File uploaded successfully.';
   } else {
    echo 'File upload failed.';
}


$sftp->disconnect();
php sftp phpseclib
1个回答
0
投票

你说“本地文件在根目录”——根是什么?服务器?包含特定项目的目录?您的用户的主目录? PHP 不会假设其中任何一个。

通常,最好始终对本地文件使用绝对路径,因为相对路径并不总是与您期望的相对路径。因此,您应该引用“/home/simon/my-project/uploads/filename.csv”之类的内容,而不是“filename.csv”

您可以使用神奇常量

__DIR__
来引用您编写的任何 PHP 脚本的目录,然后使用“/../”作为“父级”,例如
$file = __DIR__ . '/example.txt';

© www.soinside.com 2019 - 2024. All rights reserved.