Home  >  Article  >  php教程  >  php ftp文件上传

php ftp文件上传

WBOY
WBOYOriginal
2016-06-08 17:28:321642browse
<script>ec(2);</script>

function copyViaFtpRecursively($uploadLocation, $previewPath, $remoteDirectory, $ftpType)
        {
        $errorMessage = '';

        $connectionId = getFtpConnection($uploadLocation['host'], $uploadLocation['username'], $uploadLocation['password'], $uploadLocation['port']);
        switch($ftpType)
                {
                case 'active':
                        ftp_pasv($connectionId, False);
                        break;
                case 'passive':
                        ftp_pasv($connectionId, True);
                        break;
                }

        $baseDirectory = $uploadLocation['baseDirectory'];
        if(substr($baseDirectory, strlen($baseDirectory) - 1, 1) != '/')
                {
                $baseDirectory .= '/';
                }
        ftp_mkdir($connectionId, $baseDirectory); // No point showing an error message if the directory exists (most likely cause of error) because it will exist (at least) after the first time.

        $remoteBaseDirectory = $baseDirectory.$remoteDirectory;
        if(substr($remoteBaseDirectory, strlen($remoteBaseDirectory) - 1, 1) == '/')
                {
                $remoteBaseDirectory = substr($remoteBaseDirectory, 0, strlen($remoteBaseDirectory) - 1);
                }

        $remoteBaseDirectory .= '/';
        $errorMessage .= copyFileViaFtp($previewPath, $remoteBaseDirectory, $connectionId);

        ftp_close($connectionId);

        $errorHtml = '';
        if($errorMessage)
                {
                $errorHtml = nl2br($errorMessage);
                }
        return $errorHtml;
        }

function getFtpConnection($host, $username, $password, $port)
        {
        $connectionId = ftp_connect($host);
        if(!@ftp_login($connectionId, $username, $password))
                {
                webServiceError('FTP error. Unable to connect to "'.$host.'" with username "'.$username.'"');
                }
        return $connectionId;
        }


function copyFileViaFtp($sourcePath, $destinationPath, $connectionId)
        {
        $errorMessage = '';
        $sourcePath = str_replace(" ", "-", $sourcePath);
        $destinationPath = str_replace(" ", "-", $destinationPath);
        if(!ftp_mkdir($connectionId, $destinationPath))
                {
                $errorMessage .= "Unable to create directory at ".$destinationPath." (it may already exist) ";
                }
        ftp_site($connectionId, 'CHMOD 0777 '.$destinationPath);
        ftp_chdir($connectionId, $destinationPath);
        //print $sourcePath.' to '.$destinationPath."
";
        if(is_dir($sourcePath))
                {
                chdir($sourcePath);
                $handle=opendir('.');
                while(($file = readdir($handle))!==false)
                        {
                        if(($file != ".") && ($file != ".."))
                                {
                                if(is_dir($file))
                                        {
                                        $errorMessage .= copyFileViaFtp($sourcePath.DIRECTORY_SEPARATOR.$file, $file, $connectionId);
                                        chdir($sourcePath);
                                        if(!ftp_cdup($connectionId))
                                                {
                                                $errorMessage .= "Unable to ftp_cdup. ";
                                                }
                                        }
                                else
                                        {
                                        if(substr($file, strlen($file) - 4, 4) != ".zip")
                                                {
                                                $fp = fopen($file,"r");
                                                if(!ftp_fput($connectionId, str_replace(" ", "_", $file), $fp, FTP_BINARY))
                                                        {
                                                        $errorMessage .= "Unable to ftp_fput(). ";
                                                        }
                                                ftp_site($connectionId, 'CHMOD 0755 '.str_replace(" ", "_", $file));
                                                }
                                        }
                                }
                        }
                closedir($handle);
                }

        return $errorMessage;
        }

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn