如何使用php在ftp中定位文件



我试图将C:\data\image.jpg中的文件上传到我的ftp服务器(000webhost)

我使用的代码如下

   <?php
    // FTP access parameters
    $host = 'nana.host56.com';
    $usr = 'a4491289';
    $pwd = '+++';
    // file to move:
    $local_file = 'C:dataimage.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 666n";
    } else {
        print "could not chmod $filen";
    }

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

并显示警告:ftp_put(C:\data\image.jpg)[function.ftp put]:无法打开流:没有这样的文件或目录/home/a491289/public_html/upload.php

文件路径和本地文件是否有问题?非常感谢。

在上传文件之前,尝试使用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

最新更新