【问题标题】:PHP Warning: ftp_fput(): Can't open that file: Is a directory inPHP 警告:ftp_fput():无法打开该文件:是一个目录
【发布时间】:2023-03-13 15:56:01
【问题描述】:

我正在尝试将文件上传到 FTP。

这是我的代码:

$connect = ftp_connect('ftp.my-server.fr');
$login = ftp_login($connect, 'username', 'pass');

$remote_file = '/' . $date;
$local_file = fopen('C:/MAMP/htdocs/mysite/myfolder/' . $hour .'.mp3', 'r');

ftp_chdir($connect, '/'.$date);

if (ftp_fput($connect, $remote_file, $local_file, FTP_ASCII)) {
    echo "The file $local_file has been loaded";
} else {
    echo "Error while uploading file " . $local_file;
}

我收到一个错误:

PHP 警告:ftp_fput():无法打开该文件:是第 26 行 C:\MAMP\htdocs\mysite\index.php 中的目录

我不明白,因为路径是文件。当我在浏览器中粘贴$local_file URL 时,声音正在播放。

【问题讨论】:

    标签: php ftp


    【解决方案1】:

    您的$local_file 可以,但您的$remote_file 是一个目录(您使用'/' . $date 表示ftp_chdir),它需要是一个文件路径(将被创建)

    您可以使用basename复制与本地文件相同的文件名:

    $remote_dir = '/' . $date;
    $local_file = fopen('C:/MAMP/htdocs/mysite/myfolder/' . $hour .'.mp3', 'r');
    
    ftp_chdir($connect, $remote_dir);
    $remote_file = $remote_dir . '/' . basename($local_file) ;
    
    if (ftp_fput($connect, $remote_file, $local_file, FTP_ASCII)) {
        echo "The file $local_file has been loaded";
    } else {
         echo "Error while uploading file " . $local_file;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-21
      • 1970-01-01
      • 1970-01-01
      • 2016-07-24
      • 2017-10-24
      • 1970-01-01
      相关资源
      最近更新 更多