ThinkPHP est un framework PHP très populaire sur le marché national. De nombreux développeurs et entreprises l'utilisent pour développer diverses applications Web. Parmi elles, l'avatar de l'utilisateur est l'une des fonctions les plus courantes dans les applications Web. Par conséquent, cet article présentera comment implémenter la fonction de modification de l'avatar de l'utilisateur dans le framework ThinkPHP.
1. Analyse des exigences
Avant de commencer à écrire du code, nous devons d'abord clarifier les exigences, notamment?:
1. Les utilisateurs peuvent télécharger des avatars lors de l'inscription et enregistrer les avatars sur le serveur local.
2. après vous être connecté à votre propre avatar et enregistrez l'avatar modifié sur le serveur local.
En réponse aux besoins ci-dessus, ce qui suit sera expliqué en détail en deux parties.
2. Télécharger l'avatar
1. Créer une table de base de données
Pour plus de commodité, nous pouvons créer une table utilisateur pour stocker les informations de l'utilisateur :
CREATE?TABLE?`user`?( ??`id`?int(11)?NOT?NULL?AUTO_INCREMENT, ??`username`?varchar(255)?NOT?NULL, ??`password`?varchar(255)?NOT?NULL, ??`avatar`?varchar(255)?DEFAULT?NULL, ??PRIMARY?KEY?(`id`) )?ENGINE=InnoDB?AUTO_INCREMENT=1?DEFAULT?CHARSET=utf8;
Parmi elles, le champ avatar est utilisé pour stocker. le chemin de l'avatar de l'utilisateur.
2. Créer un modèle utilisateur
Dans le framework ThinkPHP, nous pouvons faire fonctionner la base de données via la classe Model. Par conséquent, nous devons d'abord créer un modèle utilisateur?:
<?php namespace app\index\model; use think\Model; class User extends Model { protected $table = 'user'; }
Il convient de noter que nous devons spécifier le nom de la table comme ??utilisateur??, sinon ThinkPHP convertira automatiquement le nom de la classe de modèle en nom de la table de données.
3. Créer un contr?leur utilisateur
Ensuite, nous pouvons créer un UserController pour gérer les fonctions d'enregistrement des utilisateurs et de téléchargement d'avatar :
<?php namespace app\index\controller; use app\index\model\User; use think\Controller; use think\facade\Request; class UserController extends Controller { // 用戶注冊 public function register() { if (Request::isPost()) { // 處理表單提交 $user = new User; $user->username?=?Request::param('username'); ????????????$user->password?=?md5(Request::param('password')); ???????????? ????????????//?上傳頭像 ????????????$avatar?=?Request::file('avatar'); ????????????if?($avatar)?{ ????????????????$savePath?=?'/uploads/'; ????????????????$saveName?=?md5($avatar->getOriginalName())?.?'.'?.?$avatar->getExtension(); ????????????????$avatar->move('.'?.?$savePath,?$saveName); ????????????????$user->avatar?=?$savePath?.?$saveName; ????????????} ???????????? ????????????$user->save(); ????????????$this->redirect('/index/Index/index'); ????????} ????????return?$this->fetch('user/register'); ????} ????//?修改頭像 ????public?function?changeAvatar() ????{ ????????if?(Request::isPost())?{ ????????????//?處理表單提交 ????????????$user?=?User::get(session('user.id')); ????????????//?刪除原頭像 ????????????if?($user->avatar)?{ ????????????????unlink('.'?.?$user->avatar); ????????????} ????????????//?上傳新頭像 ????????????$avatar?=?Request::file('avatar'); ????????????if?($avatar)?{ ????????????????$savePath?=?'/uploads/'; ????????????????$saveName?=?md5($avatar->getOriginalName())?.?'.'?.?$avatar->getExtension(); ????????????????$avatar->move('.'?.?$savePath,?$saveName); ????????????????$user->avatar?=?$savePath?.?$saveName; ????????????????$user->save(); ????????????} ????????????return?$this->success('修改頭像成功!',?'/index/Index/index'); ????????} ????????return?$this->fetch('user/change_avatar'); ????} }
Le code ci-dessus implémente les fonctions d'enregistrement des utilisateurs et de téléchargement d'avatar. En raison du manque de place, cet article ne l'expliquera pas en détail. Il est à noter que le chemin de sauvegarde des avatars des utilisateurs se trouve dans le répertoire /public/uploads/.
3. Modifier l'avatar
1. Modifier le modèle utilisateur
Dans l'étape précédente, nous avons implémenté la fonction de téléchargement de l'avatar. Cependant, lorsque l'utilisateur souhaite modifier l'avatar, nous devons d'abord supprimer l'avatar d'origine, puis télécharger le nouvel avatar sur le serveur. Par conséquent, nous devons ajouter une méthode deleteAvatar() au modèle User pour supprimer l'avatar de l'utilisateur?:
public?function?deleteAvatar() { ????if?($this->avatar)?{ ????????unlink('.'?.?$this->avatar); ????????$this->avatar?=?null; ????????$this->save(); ????} }
2. Modifier le contr?leur utilisateur
Ensuite, nous pouvons modifier la méthode changeAvatar() dans le UserController pour prendre en charge les avatars Supprimer et fonctions de téléchargement?:
public?function?changeAvatar() { ????if?(Request::isPost())?{ ????????//?處理表單提交 ????????$user?=?User::get(session('user.id')); ????????//?刪除原頭像 ????????$user->deleteAvatar(); ????????//?上傳新頭像 ????????$avatar?=?Request::file('avatar'); ????????if?($avatar)?{ ????????????$savePath?=?'/uploads/'; ????????????$saveName?=?md5($avatar->getOriginalName())?.?'.'?.?$avatar->getExtension(); ????????????$avatar->move('.'?.?$savePath,?$saveName); ????????????$user->avatar?=?$savePath?.?$saveName; ????????????$user->save(); ????????} ????????return?$this->success('修改頭像成功!',?'/index/Index/index'); ????} ????return?$this->fetch('user/change_avatar'); }
Le code ci-dessus implémente les fonctions de suppression et de téléchargement des avatars des utilisateurs. Il convient de noter que l'avatar d'origine doit être supprimé avant de télécharger un nouvel avatar.
4. Résumé
Grace aux étapes ci-dessus, nous avons implémenté avec succès les fonctions de téléchargement et de modification d'avatar utilisateur dans le framework ThinkPHP. En utilisant ces connaissances de base, nous pouvons optimiser davantage le code et ajouter des fonctions puissantes telles que le recadrage d'avatar et la conversion de format d'image pour fournir aux utilisateurs des services plus complets.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)