thinkphp實(shí)現(xiàn)UploadFile.class.php圖片上傳效能
Jun 13, 2016 pm 12:01 PM
thinkphp實(shí)現(xiàn)UploadFile.class.php圖片上傳功能
1.我們首先需要?jiǎng)?chuàng)建一個(gè)表
CREATE TABLE IF NOT EXISTS `tp_image` (
? `id` int(11) NOT NULL AUTO_INCREMENT,
? `image` varchar(200) NOT NULL,
? `create_time` int(11) NOT NULL,
? PRIMARY KEY (`id`)
) ENGINE=MyISAM? DEFAULT CHARSET=utf8;
2.然后再conf文件里添加配置(最后一段配置是可選的,只是為了方便統(tǒng)一管理URL路徑)
return array(
??????? 'URL_MODEL'??? =>??? 2, // 如果你的環(huán)境不支持PATHINFO 請(qǐng)?jiān)O(shè)置為3
??????? 'DB_TYPE'??? =>??? 'mysql',
??????? 'DB_HOST'??? =>??? 'localhost',
??????? 'DB_NAME'??? =>??? 'thinkphp',
??????? 'DB_USER'??? =>??? 'root',
??????? 'DB_PWD'??? =>??? '',
??????? 'DB_PORT'??? =>??? '3306',
??????? 'DB_PREFIX'??? =>??? 'tp_',
??????? 'SHOW_PAGE_TRACE' =>true,??????? //顯示頁(yè)面調(diào)試明細(xì)
??????? 'TMPL_PARSE_STRING' =>? array( // 地址替換,用_UPLOAD_目錄 代替 根目錄下的Upload目錄
???????? '__UPLOAD__'??? =>? __ROOT__.'/Uploads',
???? ),
);
?>
3.添加一個(gè)Image模塊(名字可以隨便取)
??? class ImageAction extends Action{????????
??????? /**
???????? * 創(chuàng)建index 入口方法
???????? */
??????? public function index(){
??????????? $image=M('Image');???????????????????????
??????????? $data=$image->order('create_time desc')->find();??? //獲取最后上傳圖片
??????????? $this->assign('data',$data);
??????????? $this->display();
??????? }?
?>
4.創(chuàng)建相應(yīng)index視圖文件(index.html)
???
???


???
5.選擇圖片,點(diǎn)擊上傳按鈕后,會(huì)跳到Image模塊的upload方法上,Image模塊上現(xiàn)在還沒(méi)有這個(gè)方法,于是我們創(chuàng)建它
??? class ImageAction extends Action{????????
??????? /**
???????? * 創(chuàng)建index 入口方法
???????? */
??????? public function index(){
??????????? $image=M('Image');????????????????????????
??????????? $data=$image->order('create_time desc')->find();??? //獲取最后上傳圖片
??????????? var_dump($data);
??????????? $this->assign('data',$data);
??????????? $this->display();
??????? }?
??????? //如果上傳的文件不為空,跳轉(zhuǎn)到_upload方法
??????? public function upload(){????????
??????????? //如果不為空
??????????? if(!empty($_FILES))
??????????? {
??????????????? $this->_upload();
??????????? }
??????? }
6.如果提交的不是NULL,則跳到_upload方法上,此方法實(shí)現(xiàn)圖片上傳的功能
??? class ImageAction extends Action{????????
??????? /**
???????? * 創(chuàng)建index 入口方法
???????? */
??????? public function index(){
??????????? $image=M('Image');????????????????????????
??????????? $data=$image->order('create_time desc')->find();??? //獲取最后上傳圖片
??????????? var_dump($data);
??????????? $this->assign('data',$data);
??????????? $this->display();
??????? }?
????????
??????? //如果上傳的文件不為空,跳轉(zhuǎn)到_upload方法
??????? public function upload(){????????
??????????? //如果不為空
??????????? if(!empty($_FILES))
??????????? {
??????????????? $this->_upload();
??????????? }
??????? }
????????
??????? /***
???????? * 實(shí)現(xiàn)圖片上傳
???????? */
??????? public function _upload(){
??????????? import('@.ORG.UploadFile');
??????????? //導(dǎo)入上傳類
??????????? $upload = new UploadFile();
??????????? //設(shè)置上傳文件大小
??????????? $upload->maxSize??????????? = 3292200;
??????????? //設(shè)置上傳文件類型
??????????? $upload->allowExts????????? = explode(',', 'jpg,gif,png,jpeg');
??????????? //設(shè)置附件上傳目錄
??????????? $upload->savePath?????????? = './Uploads/';
??????????? //設(shè)置需要生成縮略圖,僅對(duì)圖像文件有效
??????????? $upload->thumb????????????? = true;
??????????? // 設(shè)置引用圖片類庫(kù)包路徑
??????????? $upload->imageClassPath???? = '@.ORG.Image';
??????????? //設(shè)置需要生成縮略圖的文件后綴
??????????? $upload->thumbPrefix??????? = 'm_,s_';? //生產(chǎn)2張縮略圖
??????????? //設(shè)置縮略圖最大寬度
??????????? $upload->thumbMaxWidth????? = '400,100';
??????????? //設(shè)置縮略圖最大高度
??????????? $upload->thumbMaxHeight???? = '400,100';
??????????? //設(shè)置上傳文件規(guī)則
??????????? $upload->saveRule?????????? = 'uniqid';
??????????? //刪除原圖
??????????? $upload->thumbRemoveOrigin? = true;
????????????
??????????? //如果上傳不成功
??????????? if (!$upload->upload())?
??????????? {
??????????????? //捕獲上傳異常
??????????????? $this->error($upload->getErrorMsg());
??????????? }?
??????????? else?
??????????? {
??????????????? //取得成功上傳的文件信息
??????????????? $uploadList = $upload->getUploadFileInfo();
????????????????
??????????????? //導(dǎo)入圖片類
??????????????? import('@.ORG.Image');????????????????
??????????????? //給m_縮略圖添加水印, Image::water('原文件路徑','水印圖片地址')
??????????????? Image::water($uploadList[0]['savepath'] . 'm_' . $uploadList[0]['savename'], APP_PATH.'Tpl/Public/Images/logo.png');
??????????????? //圖片名賦值給 字段image
??????????????? $_POST['image'] = $uploadList[0]['savename'];
??????????? }
??????????? $model? = M('image');
??????????? //保存當(dāng)前數(shù)據(jù)對(duì)象
??????????? $data['image']????????? = $_POST['image'];
??????????? $data['create_time']??? = NOW_TIME;
??????????? $list?? = $model->add($data);
??????????? if ($list !== false)?
??????????? {
??????????????? $this->success('上傳圖片成功!');
??????????? }?
??????????? else?
??????????? {
??????????????? $this->error('上傳圖片失敗!');
??????????? }
??????? }????????
??? }
?>
上傳成功生成兩張縮略圖
需要說(shuō)明的是:
ThinkPHP里自帶的圖片上傳類(UploadFile.class.php) 和圖片模型類(Image.class.php),要完整版的ThinkPHP包才有。
沒(méi)有的話需要在Lib里創(chuàng)建一個(gè)文件夾(ORG),然后去官網(wǎng)下載擴(kuò)展包把這兩個(gè)文件放到ORG文件夾中。
我的是第二種情況

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

Auf dem Anmeldebildschirm wird die Meldung ?Ihre Organisation hat Sie gebeten, Ihre PIN zu ?ndern“ angezeigt. Dies geschieht, wenn das PIN-Ablauflimit auf einem Computer erreicht wird, der organisationsbasierte Kontoeinstellungen verwendet und die Kontrolle über pers?nliche Ger?te hat. Wenn Sie Windows jedoch über ein pers?nliches Konto einrichten, sollte die Fehlermeldung im Idealfall nicht erscheinen. Obwohl dies nicht immer der Fall ist. Die meisten Benutzer, die auf Fehler sto?en, melden dies über ihre pers?nlichen Konten. Warum fordert mich meine Organisation auf, meine PIN unter Windows 11 zu ?ndern? Es ist m?glich, dass Ihr Konto mit einer Organisation verknüpft ist. Ihr prim?rer Ansatz sollte darin bestehen, dies zu überprüfen. Die Kontaktaufnahme mit Ihrem Domain-Administrator kann hilfreich sein! Darüber hinaus k?nnen falsch konfigurierte lokale Richtlinieneinstellungen oder falsche Registrierungsschlüssel Fehler verursachen. Im Augenblick

Windows 11 bringt frisches und elegantes Design in den Vordergrund; die moderne Benutzeroberfl?che erm?glicht es Ihnen, feinste Details, wie zum Beispiel Fensterr?nder, zu personalisieren und zu ?ndern. In diesem Leitfaden besprechen wir Schritt-für-Schritt-Anleitungen, die Ihnen dabei helfen, eine Umgebung zu erstellen, die Ihrem Stil im Windows-Betriebssystem entspricht. Wie ?ndere ich die Fensterrahmeneinstellungen? Drücken Sie +, um die Einstellungen-App zu ?ffnen. WindowsIch gehe zu Personalisierung und klicke auf Farbeinstellungen. Farb?nderung Fensterr?nder Einstellungen Fenster 11" Breite="643" H?he="500" > Suchen Sie die Option Akzentfarbe auf Titelleiste und Fensterr?ndern anzeigen und schalten Sie den Schalter daneben um. Um Akzentfarben im Startmenü und in der Taskleiste anzuzeigen Um die Designfarbe im Startmenü und in der Taskleiste anzuzeigen, aktivieren Sie ?Design im Startmenü und in der Taskleiste anzeigen“.

Standardm??ig h?ngt die Farbe der Titelleiste unter Windows 11 vom gew?hlten Dunkel-/Hell-Design ab. Sie k?nnen es jedoch in jede gewünschte Farbe ?ndern. In diesem Leitfaden besprechen wir Schritt-für-Schritt-Anleitungen für drei M?glichkeiten, wie Sie Ihr Desktop-Erlebnis ?ndern und personalisieren k?nnen, um es optisch ansprechend zu gestalten. Ist es m?glich, die Farbe der Titelleiste von aktiven und inaktiven Fenstern zu ?ndern? Ja, Sie k?nnen die Farbe der Titelleiste aktiver Fenster mit der App ?Einstellungen“ ?ndern, oder Sie k?nnen die Farbe der Titelleiste inaktiver Fenster mit dem Registrierungseditor ?ndern. Um diese Schritte zu lernen, fahren Sie mit dem n?chsten Abschnitt fort. Wie ?ndere ich die Farbe der Titelleiste in Windows 11? 1. Drücken Sie in der App ?Einstellungen“ +, um das Einstellungsfenster zu ?ffnen. WindowsIch gehe zu ?Personalisierung“ und dann

Miniaturansichten in der Taskleiste k?nnen Spa? machen, aber auch ablenken oder st?ren. Wenn man bedenkt, wie oft Sie mit der Maus über diesen Bereich fahren, haben Sie m?glicherweise ein paar Mal versehentlich wichtige Fenster geschlossen. Ein weiterer Nachteil besteht darin, dass es mehr Systemressourcen verbraucht. Wenn Sie also nach einer M?glichkeit suchen, ressourceneffizienter zu arbeiten, zeigen wir Ihnen, wie Sie es deaktivieren k?nnen. Wenn Ihre Hardware-Spezifikationen jedoch dafür geeignet sind und Ihnen die Vorschau gef?llt, k?nnen Sie sie aktivieren. Wie aktiviere ich die Miniaturvorschau der Taskleiste in Windows 11? 1. Tippen Sie in der App ?Einstellungen“ auf die Taste und klicken Sie auf ?Einstellungen“. Klicken Sie unter Windows auf ?System“ und w?hlen Sie ?Info“. Klicken Sie auf Erweiterte Systemeinstellungen. Navigieren Sie zur Registerkarte ?Erweitert“ und w?hlen Sie unter ?Leistung“ die Option ?Einstellungen“ aus. W?hlen Sie ?Visuelle Effekte“

Wird auf der Windows Installer-Seite ?Ein Problem ist aufgetreten“ zusammen mit der Anweisung ?OOBELANGUAGE“ angezeigt? Aufgrund solcher Fehler bricht die Installation von Windows manchmal ab. OOBE bedeutet Out-of-the-Box-Erlebnis. Wie aus der Fehlermeldung hervorgeht, handelt es sich hierbei um ein Problem im Zusammenhang mit der OOBE-Sprachauswahl. Sie müssen sich keine Sorgen machen, Sie k?nnen dieses Problem durch eine geschickte Bearbeitung der Registrierung über den OOBE-Bildschirm selbst l?sen. Schnelll?sung – 1. Klicken Sie unten in der OOBE-App auf die Schaltfl?che ?Wiederholen“. Dadurch wird der Prozess ohne weitere Probleme fortgesetzt. 2. Verwenden Sie den Netzschalter, um das Herunterfahren des Systems zu erzwingen. Nach dem Neustart des Systems sollte OOBE fortgesetzt werden. 3. Trennen Sie das System vom Internet. Schlie?en Sie alle Aspekte von OOBE im Offline-Modus ab

Die Bildschirmhelligkeit ist ein wesentlicher Bestandteil der Nutzung moderner Computerger?te, insbesondere wenn Sie über einen l?ngeren Zeitraum auf den Bildschirm schauen. Es hilft Ihnen, die Belastung Ihrer Augen zu reduzieren, die Lesbarkeit zu verbessern und Inhalte einfach und effizient anzuzeigen. Abh?ngig von Ihren Einstellungen kann es jedoch manchmal schwierig sein, die Helligkeit zu verwalten, insbesondere unter Windows 11 mit den neuen ?nderungen an der Benutzeroberfl?che. Wenn Sie Probleme beim Anpassen der Helligkeit haben, finden Sie hier alle M?glichkeiten, die Helligkeit unter Windows 11 zu verwalten. So ?ndern Sie die Helligkeit unter Windows 11 [10 M?glichkeiten erkl?rt] Benutzer eines einzelnen Monitors k?nnen die folgenden Methoden verwenden, um die Helligkeit unter Windows 11 anzupassen. Hierzu z?hlen sowohl Desktop-Systeme mit einem einzelnen Monitor als auch Laptops. Lasst uns beginnen. Methode 1: Verwenden Sie das Action Center. Das Action Center ist zug?nglich

Wir alle haben unterschiedliche Vorlieben, wenn es um die Anzeigeskalierung unter Windows 11 geht. Manche Leute m?gen gro?e Symbole, andere m?gen kleine Symbole. Wir sind uns jedoch alle einig, dass die richtige Skalierung wichtig ist. Eine schlechte Schriftartenskalierung oder eine überskalierung von Bildern kann bei der Arbeit ein echter Produktivit?tskiller sein. Sie müssen daher wissen, wie Sie sie anpassen k?nnen, um die F?higkeiten Ihres Systems optimal zu nutzen. Vorteile des benutzerdefinierten Zooms: Dies ist eine nützliche Funktion für Personen, die Schwierigkeiten haben, Text auf dem Bildschirm zu lesen. Es hilft Ihnen, mehr gleichzeitig auf dem Bildschirm zu sehen. Sie k?nnen benutzerdefinierte Erweiterungsprofile erstellen, die nur für bestimmte Monitore und Anwendungen gelten. Kann dazu beitragen, die Leistung von Low-End-Hardware zu verbessern. Dadurch haben Sie mehr Kontrolle darüber, was auf Ihrem Bildschirm angezeigt wird. So verwenden Sie Windows 11

Der Aktivierungsprozess unter Windows nimmt manchmal eine pl?tzliche Wendung und zeigt eine Fehlermeldung mit diesem Fehlercode 0xc004f069 an. Obwohl der Aktivierungsprozess online erfolgt, kann dieses Problem bei einigen ?lteren Systemen mit Windows Server auftreten. Führen Sie diese ersten Prüfungen durch. Wenn sie Ihnen bei der Aktivierung Ihres Systems nicht weiterhelfen, fahren Sie mit der Hauptl?sung fort, um das Problem zu beheben. Problemumgehung – Schlie?en Sie die Fehlermeldung und das Aktivierungsfenster. Starten Sie dann Ihren Computer neu. Wiederholen Sie den Windows-Aktivierungsprozess noch einmal von Grund auf. Fix 1 – Aktivierung über das Terminal. Aktivieren Sie das Windows Server Edition-System über das CMD-Terminal. Stufe – 1 überprüfen Sie die Windows Server-Version. Sie müssen überprüfen, welchen W-Typ Sie verwenden
