如何覆盖现有的文件夹或文件在PHP的FTP上传? [英] How to overwrite existing folder or file in php ftp upload?
本文介绍了如何覆盖现有的文件夹或文件在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屋!
查看全文