封装ThinkPHP的一个文件上传方法实例,_PHP教程
封装ThinkPHP的一个文件上传方法实例,
本文实例讲述了封装ThinkPHP的一个文件上传方法,分享给大家供大家参考。具体如下:
这阵子,对WBlog的上传功能作了优化。改进后的上传功能可以实现缩略图上传,图片上传,生成水印,文件上传,并且可以在后台对上传的附件进行大小(文件大小),类型(文件类型),水印(针对图片)的进行设置。此外还可以对上传的文件进行分类保存到相应的文件夹里,方便管理。
下面是对改进后的上传功能作简约的说明。
缩略图上传
先前的缩略图上传功能使用了KindEditor的上传组件,除非上传之前对图片进行缩略处理,不然上传的是原图,改进后的上传功能可以通过系统对缩略图的大小进行设置,不管你上传的原图有多大,都会生成设置的大小的图片,并且自动删除原图,有效地减少垃圾信息的累积。上传的缩略图自动保存到Thumb文件夹
图片上传
上传图片,可以根据需要设置图片的大小、上传图片的类型和添加水印。
文件上传
如压缩文件,文档文件等,可根据需要添加上传文件类型和大小。
添加水印
对上传的图片添加水印。
上面的上传功能我把它封装在模型类AttachModel.class.php里,用两个方法搞定:
/**
* 附件上传:上传图片,缩略图,文件
* @param string $model 上传所在模块
* @param bool $type 上传文件的类型::image(图片);thumb(缩略图);file(文件)
*/
public function upload($model = null, $type = 'image'){
//导入上传类
import('ORG.NET.UploadFile');
$upload = new UploadFile();
$upload->saveRule = 'uniqid'; //设置上传文件规则
$upload->maxSize = C('MAXSIZE')*1024*1024; //上传文件大小
$upload->allowExts = explode(',', C('ALLOWEXTS'));//文件类型
if ($model){
$upload->savePath = './Public/Uploads/'.$model.'/';
if (!file_exists($upload->savePath)) {
mkdir($upload->savePath);
}
}else{
$upload->savePath = './Public/Uploads/Thumb/';
if (!file_exists($upload->savePath)) {
mkdir($upload->savePath);
}
}
if (in_array($type,array('image','thumb'))){
$upload->thumb = true;
$upload->thumbRemoveOrigin = true;// //删除原图
$upload->thumbPrefix = 'wb_';
$upload->thumbMaxWidth = $type=='thumb' ? C('THUMB_W') :C('IMAGE_W');//缩略图宽度
$upload->thumbMaxHeight = $type=='thumb' ? C('THUMB_H') :C('IMAGE_H');//缩略图高度
}
if (!$upload->upload()) {
return $upload->getErrorMsg();
}else{
$uploadlist = $upload->getUploadFileInfo();
if(C('ISWATER') && $type=='image'){
import('ORG.Util.Image');
//给m_缩略图添加水印, Image::water('原文件名','水印图片地址')
foreach ($uploadlist as $key => $value){
Image::water($value['savepath'] . 'wb_' . $value['savename'], './Public/admin/images/water.png');
}
}
}
if (in_array($type,array('image','file'))){
return $this->_add($uploadlist,$model);
}else{
return $uploadlist[0]['savename'];//返回缩略图保存名称
}
}
/*
* 上传的附件整合成attach所需数据,存入表并返回数组
* */
private function _add($uploadlist,$module=''){
//$j = count($uploadlist);
$v = array();
foreach ($uploadlist as $key => $value){
$v[$key]['name'] = $value['name'];
$v[$key]['savename'] = $value['savename'];
$v[$key]['savepath'] = substr($value['savepath'], 2);
$v[$key]['size'] = $value['size'];
$v[$key]['userId'] = $_SESSION[C('USER_AUTH_KEY')];
$v[$key]['uploadTime'] = time();
$v[$key]['alt'] = $_POST['alt'][$key];
$v[$key]['module'] = $_POST['module'];//当前项目路径
$v[$key]['recordId'] = $_POST['recordId'];//当前项目路径
$this->add($v[$key]);
if($this->thumb){
$v[$key]['prefix'] = $this->thumbPrefix;
}
$v[$key]['id'] = M('Attach')->getLastInsID();
}
return $v;
}
希望本文所述对大家的ThinkPHP框架程序设计有所帮助。

Outils d'IA chauds

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.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

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)

Sujets chauds

Quark Netdisk et Baidu Netdisk sont actuellement les logiciels Netdisk les plus couramment utilisés pour stocker des fichiers. Si vous souhaitez enregistrer les fichiers de Quark Netdisk sur Baidu Netdisk, comment procéder ? Dans ce numéro, l'éditeur a compilé les étapes du didacticiel pour transférer des fichiers d'un ordinateur Quark Network Disk vers Baidu Network Disk. Voyons comment le faire fonctionner. Comment enregistrer les fichiers du disque réseau Quark sur le disque réseau Baidu ? Pour transférer des fichiers de Quark Network Disk vers Baidu Network Disk, vous devez d'abord télécharger les fichiers requis depuis Quark Network Disk, puis sélectionner le dossier cible dans le client Baidu Network Disk et l'ouvrir. Ensuite, faites glisser et déposez les fichiers téléchargés depuis Quark Cloud Disk dans le dossier ouvert par le client Baidu Cloud Disk, ou utilisez la fonction de téléchargement pour ajouter les fichiers sur Baidu Cloud Disk. Assurez-vous de vérifier si le fichier a été transféré avec succès dans Baidu Cloud Disk une fois le téléchargement terminé. C'est ça

Lors de la suppression ou de la décompression d'un dossier sur votre ordinateur, une boîte de dialogue d'invite « Erreur 0x80004005 : erreur non spécifiée » apparaît parfois. Comment devez-vous résoudre cette situation ? Il existe en fait de nombreuses raisons pour lesquelles le code d'erreur 0x80004005 est demandé, mais la plupart d'entre elles sont causées par des virus. Nous pouvons réenregistrer la DLL pour résoudre le problème. Ci-dessous, l'éditeur vous expliquera l'expérience de gestion du code d'erreur 0x80004005. . Certains utilisateurs reçoivent le code d'erreur 0X80004005 lors de l'utilisation de leur ordinateur. L'erreur 0x80004005 est principalement due au fait que l'ordinateur n'enregistre pas correctement certains fichiers de bibliothèque de liens dynamiques ou à un pare-feu qui n'autorise pas les connexions HTTPS entre l'ordinateur et Internet. Alors que diriez-vous

Récemment, de nombreux internautes ont demandé à l'éditeur : quel est le fichier hiberfil.sys ? hiberfil.sys peut-il occuper beaucoup d’espace sur le disque C et être supprimé ? L'éditeur peut vous indiquer que le fichier hiberfil.sys peut être supprimé. Jetons un coup d'œil aux détails ci-dessous. hiberfil.sys est un fichier caché dans le système Windows et également un fichier d'hibernation du système. Il est généralement stocké dans le répertoire racine du lecteur C et sa taille est équivalente à la taille de la mémoire installée du système. Ce fichier est utilisé lorsque l'ordinateur est en veille prolongée et contient les données de mémoire du système actuel afin qu'il puisse être rapidement restauré à son état précédent lors de la récupération. Étant donné que sa taille est égale à la capacité de la mémoire, il peut occuper une plus grande quantité d’espace sur le disque dur. hiberner

Pour exécuter le projet ThinkPHP, vous devez : installer Composer ; utiliser Composer pour créer le projet ; entrer dans le répertoire du projet et exécuter php bin/console serve ; visiter http://localhost:8000 pour afficher la page d'accueil.

Un chemin de fichier est une chaîne utilisée par le système d'exploitation pour identifier et localiser un fichier ou un dossier. Dans les chemins de fichiers, il existe deux symboles courants séparant les chemins, à savoir la barre oblique (/) et la barre oblique inverse (). Ces deux symboles ont des utilisations et des significations différentes selon les systèmes d'exploitation. La barre oblique (/) est un séparateur de chemin couramment utilisé dans les systèmes Unix et Linux. Sur ces systèmes, les chemins de fichiers partent du répertoire racine (/) et sont séparés par des barres obliques entre chaque répertoire. Par exemple, le chemin /home/user/Docume

ThinkPHP dispose de plusieurs versions conçues pour différentes versions de PHP. Les versions majeures incluent 3.2, 5.0, 5.1 et 6.0, tandis que les versions mineures sont utilisées pour corriger les bogues et fournir de nouvelles fonctionnalités. La dernière version stable est ThinkPHP 6.0.16. Lorsque vous choisissez une version, tenez compte de la version PHP, des exigences en matière de fonctionnalités et du support de la communauté. Il est recommandé d'utiliser la dernière version stable pour de meilleures performances et une meilleure assistance.

Étapes pour exécuter ThinkPHP Framework localement : Téléchargez et décompressez ThinkPHP Framework dans un répertoire local. Créez un hôte virtuel (facultatif) pointant vers le répertoire racine ThinkPHP. Configurez les paramètres de connexion à la base de données. Démarrez le serveur Web. Initialisez l'application ThinkPHP. Accédez à l'URL de l'application ThinkPHP et exécutez-la.

1. Ouvrez Kugou Music et cliquez sur votre photo de profil. 2. Cliquez sur l'icône des paramètres dans le coin supérieur droit. 3. Cliquez sur [Télécharger des œuvres musicales]. 4. Cliquez sur [Télécharger les travaux]. 5. Sélectionnez la chanson et cliquez sur [Suivant]. 6. Enfin, cliquez sur [Télécharger].
