配置editplus,让本地文件直接上传到ftp对应目录中

 

首先将ftpUpload.php放到指定目录内比如:D:\ftp

2、打开editplus的参数设置配置editplus,让本地文件直接上传到ftp对应目录中

选择用户工具,新建一个组,组名自定义。例如:PHP

然后选择添加工具-》应用程序-

配置editplus,让本地文件直接上传到ftp对应目录中

命令选择PHP.exe文件,例如:F:\PHPnow\php-5.2.14-Win32\php.exe

在参数中填上:【-f d:/ftp/ftpUpload.php -- -f $(FilePath)  中括号里面的内容

动作选择:捕捉输出。选择应用。

 

 

再配置ftpUpload.php文件里面的内容:

 

// 定义FTP相关参数

$ftp_host = '127.0.0.1';     //服务器IP

$ftp_user = 'demo';                                 //ftp用户名

$ftp_pass = 'demo';                     //ftp密码

$ftp_port = 21;                                     //ftp端口

$pasv_mode = true;                            //是否安全模式

 // 定义开发环境路径   

$remote_root_dir = '/demo' ;               //ftp目录可以只填写“/

 

// 定义本地上传路径(此路径等价于开发环境路径)

$local_root_path = 'F:/PHPnow/htdocs/demo';         //本地文件路径,切记路径

 

在editplus中选择工具组PHP,会出现如下图:

配置editplus,让本地文件直接上传到ftp对应目录中

 

OK,,,配置结束,我们在本地文件修改下,在某一行添加一个”#”,试试。嘿嘿。。。成功了吧


再附上ftpUpload.php的代码:

<?php
/**
 * Editplus FTP同步脚本
 * Author: iColin
 * Date: 2010年12月11日
 * Homepage: http://icolin.org
 */

// 定义FTP相关参数
$ftp_host = '127.0.0.1';
$ftp_user = 'demo';
$ftp_pass = 'demo';
$ftp_port = 21;
$pasv_mode = true;

// 定义开发环境路径
$remote_root_dir = '/' ;

// 定义本地上传路径(此路径等价于开发环境路径)
$local_root_path = 'F:/PHPnow/htdocs/demo';

// 处理参数
array_shift($argv) ;
$file_info = array() ;
for($i=0 , $length = count($argv);$i < $length ;$i+=2){
    $file_info[$argv[$i]] = $argv[$i+1] ;
}
$file_path = str_replace('\\', '/', $file_info['-f']);

// 只允许提交指定路径下的文件
if(strpos($file_path, $local_root_path) === false){
    echo 'you can only upload file in the "'.$local_root_path.'"'."\n" ;
    exit() ;
}

// 检查文件是否合法
if(!is_file($file_path)) {
    echo "$file_path is bad file.\n";
    exit() ;
}

// 处理路径
$local_root_dir = substr($local_root_path, strrpos($local_root_path, '/') +1 );
$file_name = substr($file_path, strrpos($file_path, '/')+1) ;
$local_root = substr($file_path, 0, strrpos($file_path, '/')+1) ;
$remote_root = $remote_root_dir.substr($local_root, strpos($local_root, $local_root_dir) + strlen($local_root_dir)) ;

//echo $file_path."\n".$file_name."\n".$local_root."\n".$remote_root."\n" ;
//exit() ;

// FTP连接 上传
$ftp = getFtpConnection($ftp_host, $ftp_port, $ftp_user, $ftp_pass, $pasv_mode);
$files = array($file_name);
upload($ftp, $remote_root, $local_root, $files);
ftp_close($ftp);

/**
 * 连接FTP
 * @param $host {string} 主机名
 * @param $user {string} 用户名
 * @param $pass {string} 密码
 * @param $pasv {boolean} 是否打开被动模式
 */
function getFtpConnection($host, $port, $user, $pass, $pasv) {
    $ftp = @ftp_connect($host, $port);
    if($ftp === false) {
        echo "Connect to FTP Failed!\n";
        exit() ;
    }
    if(!@ftp_login($ftp, $user, $pass)) {
        echo "Login FTP Failed!\n";
        exit() ;
    }
    if(!@ftp_pasv($ftp, $pasv)) {
        echo "Choose PASV mode Failed!\n";
        exit() ;
    }
    return $ftp;
}

/**
 * FTP上传文件
 * @param $ftp FTP连接标识符
 * @param $remote_root {string} 远程路径
 * @param $local_root {string} 本地路径
 * @param $uploadFiles {array} 要上传的文件
 */
function upload($ftp, $remote_root, $local_root, $uploadFiles) {
    if(count($uploadFiles) == 0) {
        echo "No file found.\n";
        exit() ;
    }
    if(!@ftp_chdir($ftp, $remote_root)) {
        echo "Change dir to $remote_root Failed!\n";
        exit() ;
    }
    foreach($uploadFiles as $f) {
        if(ftp_put($ftp, basename($f), $local_root.$f, FTP_BINARY)) {
            echo "$f uploaded Successfully! \n";
        } else {
            echo "$f upload Failed! \n";
        }
    }
}

?>

本文章是在上面那位写代码的哥们空间里学习的,,大家有兴趣的话,可以去看看。。。。更多PHP技术:http://wjima.a173.cnaaa4.com(本人博客,里面都是一些技巧,当然啦,,也有废话。。呵呵)

你可能感兴趣的:(ftp,Editplus,Editplus)