Rickstar
Rickstar

Reputation: 6189

How To Copy Files Around FTP Using PHP

I am tring to copy a file from one folder to another using the php ftp functions.

e.g

Copy This File: httpdocs/user_images/Services/File 1.jpg

To: httpdocs/user_images/folder11

i have tried to use ftp_fput but i am not have any luck with it.

Upvotes: 6

Views: 35352

Answers (5)

Niraj_Palange
Niraj_Palange

Reputation: 38

the Copy Function will not work. You need to use ftp_get () and ftp_put() functions in order to achieve this task

Upvotes: 1

Mark Kennedy
Mark Kennedy

Reputation: 1639

Perhaps a little known fact: the copy() function in PHP can be used to copy files to an FTP server, though without as much control as you get by using the ftp-specific functions.

In other words, this can do the job:

if(copy('local/file.img', 'ftp://user:[email protected]/remote/dir/file.img')) {
  echo "It worked!!!";
}

http://php.net/manual/en/function.copy.php

Upvotes: 11

bensiu
bensiu

Reputation: 25564

file copy: http://us.php.net/manual/en/function.copy.php

Upvotes: 1

mrbellek
mrbellek

Reputation: 2300

From the manual page on ftp_put on PHP.net:

<?php 
// bool ftp_copy  ( resource $ftp_stream  , string $initialpath, string $newpath, string $imagename ) 
function ftp_copy($conn_distant , $pathftp , $pathftpimg ,$img){ 
        // on recupere l'image puis on la repose dans le nouveau folder 
        if(ftp_get($conn_distant, TEMPFOLDER.$img, $pathftp.'/'.$img ,FTP_BINARY)){ 
                if(ftp_put($conn_distant, $pathftpimg.'/'.$img ,TEMPFOLDER.$img , FTP_BINARY)){ 
                        unlink(TEMPFOLDER.$img) ;                                              
                } else{                                
                        return false; 
                } 

        }else{ 
                return false ; 
        } 
        return true ; 
} 
?>

Upvotes: 9

rockerest
rockerest

Reputation: 10508

Unless you're actually moving files between servers or to somewhere that PHP doesn't have access, use copy()(php)

<?
copy('httpdocs/user_images/Services/File 1.jpg', 'httpdocs/user_images/folder11/File 1.jpg');
?>

Upvotes: 1

Related Questions