Verwenden Sie FTP, um Bilder in thinkphp hochzuladen

Freigeben: 2020-05-14 09:37:38
nach vorne
3267 Leute haben es durchsucht

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();
    }
}
Nach dem Login kopieren

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'    => '/',//图片服务器根目录
Nach dem Login kopieren

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();
    }
}
Nach dem Login kopieren

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();
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage