Heim  >  Artikel  >  PHP-Framework  >  Verwenden Sie FTP, um Bilder in thinkphp hochzuladen

Verwenden Sie FTP, um Bilder in thinkphp hochzuladen

尚
nach vorne
2020-05-14 09:37:383239Durchsuche

Verwenden Sie FTP, um Bilder in thinkphp hochzuladen

Die Bild-Upload-Funktion sollte äußerst verbreitet sein. Hier beziehen wir uns auf die Integrationsmethode im ThinkPHP-Framework, um die FTP-Bild-Upload-Funktion zu ordnen, damit relevante Informationen bequem hochgeladen werden können Während Hintergrundvorgängen werden Bilder direkt auf den Online-Bildserver hochgeladen, um ein langsames Laden von Bildern zu vermeiden, auf die bei großem Datenverkehr zugegriffen wird, und den Zugriffsdruck auf die Website zu verringern.

1. Front-End-Design

Dies dient hauptsächlich dem Testen der Implementierung von Funktionen unter Verwendung des einfachsten Designs, das sowohl praktisch als Referenz ist als auch für spätere Funktionen förderlich ist Erweiterung. Der Hauptcode von upload.html ist unten angehängt. Achten Sie besonders auf den im roten Feld eingekreisten Code. Bei Bedarf können Sie auf den Quellcode zurückgreifen.

Verwenden Sie FTP, um Bilder in thinkphp hochzuladen

2. Hintergrund-Controller-Design

config.class.php Der Hauptcode lautet wie folgt, in dem die entworfene Tabelle „ conf „Sie müssen hier nur zwei Felder verwenden – ‚tag‘, ‚value‘, Sie können den einfachen Varchar-Typ

public function upload(){
    if (IS_POST){
        foreach ($_FILES as $key => $value){
            $img = handleImg($key);
            $furl = C('REMOTE_ROOT').$img;
            if ($img){
                ftp_upload($furl,$img);
                $saveData['value'] = $img;
                M('conf')
                    ->where("tag = '".$key."'")
                    ->save($saveData);
            }
        }
        $this->success('FTP 测试完成',U('Config/upload'),2);
    }else{
        $imgUrl = M('conf')
            ->where("tag = 'upImg'")
            ->getField('value');
        $this->assign('imgUrl',$imgUrl);
        $this->display();
    }
}

3. Konfigurationsdaten

In verwenden Konfigurieren Sie in der öffentlichen Konfigurationsdatei die folgenden konstanten Daten. Achten Sie auf die Richtigkeit der Konfiguration des FTP-Kontos und des Passworts.

      //ftp(外网服务器)上传文件相关参数
      'FTP_SEVER'       => 'http://img.52zhenmi.com',  //此地址,作为图片读取的位置 请上线前仔细确认
      'FTP_HOST'       => 'img.52zhenmi.com',
      'WEB_SEVER'      => 'http://img.52zhenmi.com',
      'WEB_M_SERVER'    => 'http://www.52zhenmi.com/m',
 
 
      'FTP_NAME'       => 'fexxxi',//ftp帐户
      'FTP_PWD'        => '1qxxxxxxw',//ftp密码
      'FTP_PORT'       => '21',//ftp端口,默认为21
      'FTP_PASV'       => true,//是否开启被动模式,true开启,默认不开启
      'FTP_SSL'        => false,//ssl连接,默认不开启
      'FTP_TIMEOUT'    => 60,//超时时间,默认60,单位 s
      'REMOTE_ROOT'    => '/',//图片服务器根目录

4. Dateien importieren

Nehmen Sie meinen Code als Beispiel, und FTP.class.php wird in „/ Library/Think“ abgelegt ' Verzeichnis;

Upload.class.php wird im Verzeichnis „/Library/Org/Net“ abgelegt. Sie können das Verzeichnis entsprechend Ihren eigenen Nutzungsgewohnheiten anpassen, solange es keine Probleme bei der Instanziierung gibt Weg. Das ist es.

5. Öffentliche Funktionen hinzufügen

Achten Sie darauf, die in Schritt 2 oben verwendeten öffentlichen Funktionen hinzuzufügen.

/**
 * 图片上传的公共处理方法
 * @param string $fileName 图片上传的name
 * @return string 图片的存储路径
 */
function handleImg($fileName){
    if($_FILES[$fileName]['tmp_name'] != ""){
        $img = $_FILES[$fileName];
        $imgUrl = __ROOT__."/public";
        $upload = new \Org\Net\Upload($img, $imgUrl);
        return $upload->main();
    }
}

FTP-Upload-Dateifunktion

function ftp_upload($remotefile,$localfile){
    $ftp = new \Think\Ftp();
    $data['server'] = C('FTP_HOST');
    $data['username'] = C('FTP_NAME');//ftp帐户
    $data['password'] = C('FTP_PWD');//ftp密码
    $data['port'] = C('FTP_PORT');//ftp端口,默认为21
    $data['pasv'] = C('FTP_PASV');//是否开启被动模式,true开启,默认不开启
    $data['ssl'] = C('FTP_SSL');//ssl连接,默认不开启
    $data['timeout'] = C('FTP_TIMEOUT');//超时时间,默认60,单位 s
    $info = $ftp->start($data);
    if($info){
        if($ftp->put($remotefile,$localfile)){}
    }
    $ftp->close();
}

6. Betriebs-Screenshot

Verwenden Sie FTP, um Bilder in thinkphp hochzuladen

Verwenden Sie FTP, um Bilder in thinkphp hochzuladen

7 , Tipps

Für diesen Referenzcode überträgt die öffentliche Methode handleImg() zunächst das hochzuladende Bild in das Stammverzeichnis der aktuell betriebenen Website und lädt das Bild dann über ftp_upload() hoch Bei der Übertragung auf den entsprechenden Bild-FTP-Server ist der erste Schritt hinsichtlich der Implementierungsschritte überflüssig, da der Testserver während des Entwicklungsprozesses die Anforderungen an ein FTP-Konto nicht erfüllt und gleichzeitig eine zeitnahe Aktualisierung von Online-Inhalten ermöglichen muss Modifikationen.

Empfohlenes Tutorial: „TP5

Das obige ist der detaillierte Inhalt vonVerwenden Sie FTP, um Bilder in thinkphp hochzuladen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen