как найти файл в ftp с помощью php - PullRequest
0 голосов
/ 29 февраля 2012

Я пытаюсь загрузить файл в C: \ data \ image.jpg на мой FTP-сервер (000webhost)

Я использую код следующим образом

   <?php
    // FTP access parameters
    $host = 'nana.host56.com';
    $usr = 'a4491289';
    $pwd = '+++';

    // file to move:
    $local_file = 'C:\data\image.jpg';
    $ftp_path = '/public_html/';

    // connect to FTP server (port 21)
    $conn_id = ftp_connect($host, 21) or die ("Cannot connect to host");


    // send access parameters
    ftp_login($conn_id, $usr, $pwd) or die("Cannot login");

    // turn on passive mode transfers (some servers need this)
    // ftp_pasv ($conn_id, true);

    // perform file upload
    $upload = ftp_put($conn_id, $ftp_path, $local_file, FTP_ASCII);

    // check upload status:
    print (!$upload) ? 'Cannot upload' : 'Upload complete';
    print "\n";

    /*
    ** Chmod the file (just as example)
    */

    // If you are using PHP4 then you need to use this code:
    // (because the "ftp_chmod" command is just available in PHP5+)
    if (!function_exists('ftp_chmod')) {
       function ftp_chmod($ftp_stream, $mode, $filename){
            return ftp_site($ftp_stream, sprintf('CHMOD %o %s', $mode, $filename));
       }
    }

    // try to chmod the new file to 666 (writeable)
    if (ftp_chmod($conn_id, 0666, $ftp_path) !== false) {
        print $ftp_path . " chmoded successfully to 666\n";
    } else {
        print "could not chmod $file\n";
    }


// close the FTP stream
ftp_close($conn_id);
?>

и отображается Предупреждение: ftp_put (C: \ data \ image.jpg) [function.ftp-put]: не удалось открыть поток: нет такого файла или каталога / home / a4491289 / public_html / upload.php

Что-то не так с путем к файлу и локальным файлом? Большое спасибо.

1 Ответ

0 голосов
/ 29 февраля 2012

попробуйте использовать ftp_chdir для $ ftp_dir перед загрузкой файла и в удаленном пути используйте имя файла, который вы хотите загрузить.т.е.:

ftp_chrdir('/public_html/');
ftp_put($con, 'ftp_image.jpg', 'real_image.jpg', FTP_ASCII);

Или вы можете попытаться указать полный путь к целевому файлу, а не просто '/public_html/'.

. Взгляните на пример по адресу: http://php.net/manual/en/function.ftp-put.php

...