php 文件上传失败

qvk1mo1f  于 2023-10-15  发布在  PHP
关注(0)|答案(2)|浏览(107)

我最近安装了phpseclib,并试图上传一个简单的CSV文件到远程SFTP服务器,但没有成功。
本地文件位于根目录中,远程路径也指向根目录。
任何建议都会很好。

use phpseclib3\Net\SFTP;

    $host = '';
    $user = '';
    $password = '';

    $sftp = new SFTP($host);

    if (!$sftp->login($user, $password)) {
        throw new \Exception('Login failed');
    }

    echo 'Login successful';

    $file_to_upload = 'filename.csv';
    $remote_file_path = '/upload/filename.csv';

    $sftp->put($remote_file_path, $file_to_upload, SFTP::SOURCE_LOCAL_FILE);
omtl5h9j

omtl5h9j1#

你说“本地文件在根目录下”-根目录是什么?服务器?包含特定项目的目录?你用户的主目录?PHP不会承担任何这些。
一般来说,最好总是对本地文件使用绝对路径,因为相对路径并不总是相对于您所期望的路径。因此,您应该引用类似于“/home/simon/my-project/uploads/filename. csv”的内容,而不是“filename.csv”
您可以使用魔术常量__DIR__来引用您编写的任何PHP脚本的目录,然后使用'/../'表示“parent of”,例如。如果脚本在/home/simon/my-project/public/test.php中,则可以编写$localCsvFile = __DIR__ . '/../uploads/filename.csv';

xbp102n0

xbp102n02#

我只是注意到实际的文件不在远程服务器上传输。

相关问题