백엔드 개발 PHP 튜토리얼 PHP利用curl下传文件到FTP服务器(无ftp扩展情况上)

PHP利用curl下传文件到FTP服务器(无ftp扩展情况上)

Jun 13, 2016 pm 01:06 PM
curl ftp static

PHP利用curl上传文件到FTP服务器(无ftp扩展情况下)

在一次需求中,需要一个FTP服务器作为中转站,程序定时在FTP服务器获取数据,定时上传数据库的数据到FTP服务器上,由于PHP没有安装ftp扩展,导致FTP操作很是麻烦,对于socket的理解不够深入,由于时间比较紧急,在同事指点下,想到了用curl方法,经过自己的整理,将curl方法整理为一个类:

?

<?php

/*
 * To change this template, choose Tools | Templates
 * ftp curl方法操作类
 */
class ftp{
    //FTP服务器地址
    public static $host = "127.0.0.1";
    //FTP端口
    public static $port = "2121";
    //上传的FTP目录
    public static $uploaddir = "upblod";
    //读取的FTP目录
    public static $readdir = "read";
    //FTP用户名
    public static $usrname = "user";
    //FTP密码
    public static $pwd = "pwd";
    /*
     * curl 方法将文件上传到FTP服务器
     * $filename上传到FTP的文件名,$uploadfile具体需要上传文件的地址(我用的绝对路径)
     */
    public static function ftp_upload($filename,$uploadfile)
    {
        $url = "ftp://".self::$host.":".self::$port."/".self::$uploaddir."/".$filename;
        //需要上传的文件
        $fp = fopen ($uploadfile, "r"); 
        $ch = curl_init(); 
        curl_setopt($ch, CURLOPT_VERBOSE, 1);  //有意外发生则报道 
        curl_setopt($ch, CURLOPT_USERPWD, self::$usrname.':'.self::$pwd); //FTP登陆账号密码,模拟登陆 
        curl_setopt($ch, CURLOPT_URL, $url); 
        curl_setopt($ch, CURLOPT_PUT, 1); //用HTTP上传一个文件 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //不输出 
        curl_setopt($ch, CURLOPT_INFILE, $fp); //要上传的文件 
        $http_result = curl_exec($ch); //执行 
        $error = curl_error($ch); 
        curl_close($ch); 
        fclose($fp);
        //成功上传文件 返回true
        if (!$error) 
        { 
            return true;
        }
     }
    /*
     * curl 方法将读取FTP文件并保存在本地使用
     * $filenameFTP服务器文件名,$filepath 保存到本地(服务器)的目录
     */    
    public static function ftp_read($filename,$filepath)
    {       
        $curl = curl_init(); 
        
        $target_ftp_file = "ftp://".self::$host.":".self::$port."/".self::$readdir."/".$filename;//完整路径
        
        curl_setopt($curl, CURLOPT_URL,$target_ftp_file);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_VERBOSE, 1);
        curl_setopt($curl, CURLOPT_FTP_USE_EPSV, 0);
        curl_setopt($curl, CURLOPT_TIMEOUT, 300); // times out after 300s
        curl_setopt($curl, CURLOPT_USERPWD,self::$usrname.':'.self::$pwd);//FTP用户名:密码
        // Sets up the output file
        //本地保存目录
        if(is_dir($filepath)){
         $outfile = fopen($filepath.$filename, 'w');//保存到本地的文件名
         curl_setopt($curl,CURLOPT_FILE,$outfile);
         // Executes the cURL 
         $info = curl_exec($curl);
         fclose($outfile);
         $error_no = curl_errno($curl);
         curl_close($curl);
         //成功读取文件,返回 true
         if($info){
             return true;
         }
        }        
     }
}
?>
로그인 후 복사

?这里只是做了上传与下载文件,删除文件的操作没有涉及,有兴趣的童鞋可以研究下

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Python에서 CURL과 Python 요청 간의 상호 변환을 실현하는 방법 Python에서 CURL과 Python 요청 간의 상호 변환을 실현하는 방법 May 03, 2023 pm 12:49 PM

컬과 Pythonrequests는 모두 HTTP 요청을 보내는 강력한 도구입니다. 컬은 터미널에서 직접 요청을 보낼 수 있는 명령줄 도구인 반면, Python의 요청 라이브러리는 Python 코드에서 요청을 보내는 보다 프로그래밍적인 방법을 제공합니다. 컬을 Pythonrequestscurl 명령으로 변환하는 기본 구문은 다음과 같습니다. 컬[OPTIONS]URL 컬 명령을 Python 요청으로 변환할 때 옵션과 URL을 Python 코드로 변환해야 합니다. 다음은 컬POST 명령의 예입니다: 컬-XPOST https://example.com/api

Linux에서 컬 버전을 업데이트하는 방법에 대한 튜토리얼입니다! Linux에서 컬 버전을 업데이트하는 방법에 대한 튜토리얼입니다! Mar 07, 2024 am 08:30 AM

Linux에서 컬 버전을 업데이트하려면 다음 단계를 따르세요. 현재 컬 버전을 확인하세요. 먼저 현재 시스템에 설치된 컬 버전을 확인해야 합니다. 터미널을 열고 다음 명령을 실행합니다. 컬 --version 이 명령은 현재 컬 버전 정보를 표시합니다. 사용 가능한 컬 버전 확인: 컬을 업데이트하기 전에 사용 가능한 최신 버전을 확인해야 합니다. 최신 버전의 컬을 찾으려면 컬의 공식 웹사이트(curl.haxx.se)나 관련 소프트웨어 소스를 방문하세요. 컬 소스 코드 다운로드: 컬 또는 브라우저를 사용하여 선택한 컬 버전의 소스 코드 파일(일반적으로 .tar.gz 또는 .tar.bz2)을 다운로드합니다.

nginx 리버스 프록시 FTP 서버를 설정하는 방법 nginx 리버스 프록시 FTP 서버를 설정하는 방법 May 17, 2023 am 09:31 AM

1. nginx 설치 2. vsftpd 설치 3. nginx 구성 파일 nginx.conf 수정 3.1 첫 번째 줄에 ftp 사용자 userftpuser 추가 3.2 관련 경로 서버 구성{ Listen80; #ftp 서버 주소 위치; Images{ root /home/ftpuser; #프록시 FTP 서버 폴더의 절대 경로 indexftpuser #환영 페이지 설정

PHP8.1 출시: 여러 요청을 동시에 처리하기 위한 컬(curl) 도입 PHP8.1 출시: 여러 요청을 동시에 처리하기 위한 컬(curl) 도입 Jul 08, 2023 pm 09:13 PM

PHP8.1 출시: 여러 요청의 동시 처리를 위한 컬 소개 최근 PHP는 여러 요청의 동시 처리를 위한 컬이라는 중요한 기능을 도입한 최신 버전의 PHP8.1을 공식 출시했습니다. 이 새로운 기능은 개발자에게 여러 HTTP 요청을 처리하는 보다 효율적이고 유연한 방법을 제공하여 성능과 사용자 경험을 크게 향상시킵니다. 이전 버전에서는 여러 요청을 처리하려면 여러 컬 리소스를 만들고 루프를 사용하여 각각 데이터를 보내고 받아야 하는 경우가 많았습니다. 이 방법으로 목적을 달성할 수는 있지만

Go에서 FTP 사용: 전체 가이드 Go에서 FTP 사용: 전체 가이드 Jun 17, 2023 pm 06:31 PM

인터넷의 급속한 발전과 함께 파일 전송 프로토콜(FTP)은 항상 중요한 파일 전송 방법이었습니다. Go 언어에서는 FTP를 사용하여 파일을 전송하는 것이 많은 개발자에게 필요할 수 있습니다. 하지만 Go 언어에서 FTP를 사용하는 방법을 모르는 사람들이 많을 수도 있습니다. 이번 글에서는 FTP 서버 연결부터 파일 전송까지 Go 언어로 FTP를 사용하는 방법과 오류 및 예외 처리 방법을 살펴보겠습니다. FTP 연결 생성 Go 언어에서는 표준 "net" 패키지를 사용하여 FTP에 연결할 수 있습니다.

처음부터 끝까지: PHP 확장 cURL을 사용하여 HTTP 요청을 만드는 방법 처음부터 끝까지: PHP 확장 cURL을 사용하여 HTTP 요청을 만드는 방법 Jul 29, 2023 pm 05:07 PM

처음부터 끝까지: HTTP 요청에 PHP 확장 cURL을 사용하는 방법 소개: 웹 개발에서는 종종 타사 API 또는 기타 원격 서버와 통신해야 합니다. cURL을 사용하여 HTTP 요청을 하는 것은 일반적이고 강력한 방법입니다. 이 기사에서는 PHP를 사용하여 cURL을 확장하여 HTTP 요청을 수행하는 방법을 소개하고 몇 가지 실용적인 코드 예제를 제공합니다. 1. 준비 먼저 php에 cURL 확장이 설치되어 있는지 확인하세요. 명령줄에서 php-m|grepcurl을 실행하여 확인할 수 있습니다.

PHP 및 FTP: 웹사이트 개발 시 여러 부서 간 파일 공유 실현 PHP 및 FTP: 웹사이트 개발 시 여러 부서 간 파일 공유 실현 Jul 28, 2023 pm 01:01 PM

PHP 및 FTP: 웹 사이트 개발 시 여러 부서 간에 파일 공유를 달성합니다. 인터넷이 발전하면서 점점 더 많은 회사가 정보 공개 및 비즈니스 홍보를 위해 웹 사이트 플랫폼을 사용하기 시작했습니다. 그러나 발생하는 문제는 여러 부서 간의 파일 공유 및 협업을 어떻게 달성할 수 있느냐는 것입니다. 이 경우 PHP와 FTP는 가장 일반적으로 사용되는 솔루션 중 하나가 됩니다. 이 기사에서는 PHP와 FTP를 사용하여 웹 사이트 개발 시 여러 부서 간에 파일을 공유하는 방법을 소개합니다. 1. FTP 소개 FTP(FileTransferPr

PHP를 통해 FTP 서버의 디렉터리와 파일을 비교하는 방법 PHP를 통해 FTP 서버의 디렉터리와 파일을 비교하는 방법 Jul 28, 2023 pm 02:09 PM

PHP를 통해 FTP 서버의 디렉터리와 파일을 비교하는 방법 웹 개발에서 때로는 로컬 파일과 FTP 서버의 파일을 비교하여 둘 사이의 일관성을 확인해야 할 때가 있습니다. PHP는 이 기능을 구현하기 위한 몇 가지 함수와 클래스를 제공합니다. 이 기사에서는 PHP를 사용하여 FTP 서버의 디렉터리와 파일을 비교하는 방법을 소개하고 관련 코드 예제를 제공합니다. 먼저 FTP 서버에 연결해야 합니다. PHP는 FTP 서버를 구축하기 위해 ftp_connect() 함수를 제공합니다.

See all articles