如何覆盖现有的文件夹或文件在PHP的FTP上传? [英] How to overwrite existing folder or file in php ftp upload?

查看:206
本文介绍了如何覆盖现有的文件夹或文件在PHP的FTP上传?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果使用 ftp_put 通过php ftp存在,如何覆盖文件夹/文件。
默认不覆盖文件。

  function ftp_putAll($ conn_id,$ folder,$ remotedir){/ /从第161行的moveFolder函数调用// 
$ d = dir($ folder);
while($ file = $ d-> read()){//为目录
中的每个文件执行此操作if($ file!=。&& $ file!= ...){//防止无限循环
if(is_dir($ folder。/。$ file)){//如果它是目录
if(! @ftp_chdir($ conn_id,$ remotedir。/。$ file)){
ftp_mkdir($ conn_id,$ remotedir。/。$ file); //创建不存在的目录

$ stream_options = array('ftp'=> array('overwrite'=> true));
$ this-> ftp_putAll($ conn_id,$ folder。/。$ file,$ remotedir。/。$ file); //递归部分
} else {
if(ftp_put($ conn_id,$ remotedir。/。$ file,$ folder。/。$ file,FTP_ASCII)){
$ upload = ftp_put($ conn_id,$ remotedir。/。$ file,$ folder。/。$ file,FTP_ASCII);
}

其他{




}

解决方案

  function ftp_putAll($ conn_id,$ src_dir, $ dst_dir){
$ d = dir($ src_dir); ($ file = $ d-> read()){//为目录

中的每个文件执行此操作(if($ file!=。)。 && $ file!=..){//防止无限循环

if(is_dir($ src_dir。/。$ file)){//执行以下操作如果它是一个目录

if(!@ ftp_chdir($ conn_id,$ dst_dir。/。$ file)){

ftp_mkdir($ conn_id,$ dst_dir。 /\".$file); //创建不存在的目录
}


ftp_putAll($ conn_id,$ src_dir。/。$ file,$ dst_dir。/。$ file ); //递归部分

}其他{


@ftp_put($ conn_id,$ dst_dir。/。$ file,$ src_dir。/。 $ file,FTP_BINARY);
}
}
}
$ d-> close();
}

你可以试试以上代码。

以下是函数参数

连接ID,
源路径,
目的地路径

how to overwrite folder/file if exist via php ftp using ftp_put . the default is not overwriting the files.

 function ftp_putAll($conn_id, $folder, $remotedir) {                            // Called from moveFolder function at line 161 //
$d = dir($folder);
while($file = $d->read()) {                                                             // do this for each file in the directory
    if ($file != "." && $file != "..") {                                                // to prevent an infinite loop
        if (is_dir($folder."/".$file)) {                                                // do the following if it is a directory
            if (!@ftp_chdir($conn_id, $remotedir."/".$file)) {
                ftp_mkdir($conn_id, $remotedir."/".$file);                              // create directories that do not yet exist
            }
            $stream_options = array('ftp' => array('overwrite' => true));
            $this->ftp_putAll($conn_id, $folder."/".$file, $remotedir."/".$file);       // recursive part
        } else {
            if(ftp_put($conn_id, $remotedir."/".$file, $folder."/".$file, FTP_ASCII)) { 
                $upload = ftp_put($conn_id, $remotedir."/".$file, $folder."/".$file, FTP_ASCII);
                }

else {

} }

解决方案

   function ftp_putAll($conn_id, $src_dir, $dst_dir){
  $d = dir($src_dir);

    while($file = $d->read()) { // do this for each file in the directory

        if ($file != "." && $file != "..") { // to prevent an infinite loop

            if (is_dir($src_dir."/".$file)) { // do the following if it is a directory

                if (!@ftp_chdir($conn_id, $dst_dir."/".$file)) {

                    ftp_mkdir($conn_id, $dst_dir."/".$file); // create directories that do not yet exist                                                
                }


                ftp_putAll($conn_id, $src_dir."/".$file, $dst_dir."/".$file); // recursive part

            } else {


                @ftp_put( $conn_id, $dst_dir."/".$file, $src_dir."/".$file, FTP_BINARY);
            }
        }
    }
    $d->close();
}

can you please try this above code.

Following are function parameter

connection id , source path , destination path

这篇关于如何覆盖现有的文件夹或文件在PHP的FTP上传?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆