国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison développement back-end tutoriel php PHP文件上載過濾類

PHP文件上載過濾類

Jun 13, 2016 am 11:02 AM
application gt this

PHP文件下載過濾類

<?php /**	 * file download class	 * Create Time:06/23/2009	 * Author:DAKER.W	 * QQ:451021477		 */	class Download{		private $debug			= false;		private $errorMsg		= '';			private $filter			= array();		private $fileName		= '';		private $mineType		= '';		private $xlq_filetype	= array();		private $limitTime		= 60;		/**		 * @param string $fileFilter 		 * @param boolean $isDebug		 */		function __construct($fileFilter='', $isDebug=true)		{			$this->setFilter($fileFilter);			$this->setDebug($isDebug);			$this->setFileType();		}				function downloadfile($filename)		{			$this->fileName		= $filename;			if($this->filecheck()){				$fn				= basename($this->fileName);				ob_end_clean();				@set_time_limit($this->limitTime);				header('Cache-control: max-age=31536000');				header('Expires: '.gmdate('D, d M Y H:i:s',time()+31536000).' GMT');				header('Content-Encoding: none');				header('Content-Length: '.filesize($this->fileName));				header('Content-Disposition: attachment; filename='.$fn);				header('Content-Type: '.$this->mineType);				readfile($this->fileName);				return true;			}else{				return false;			}		}				function filecheck()		{			$fileName		= $this->fileName;			if(file_exists($fileName)){				$fileType	= strtolower(array_pop(explode(".", $fileName)));				if(!in_array($fileType, $this->filter)){					$this->errorMsg	.= sprintf("%s can't download!", $fileName);					if($this->debug)exit(sprintf("%s can't download!", $fileName));					return false;				}else {					if(function_exists("mime_content_type")){						$this->mineType		= mime_content_type($fileName);					}										if(empty($this->mineType)){						if(isset($this->xlq_filetype[$fileType])){							$this->mineType		= $this->xlq_filetype[$fileType];						}					}										if(!empty($this->mineType)){						return true;					}else {						$this->errorMsg			.= "Can't get file type!";						if($this->debug)exit("Can't get file type!");						return false;																		}				}							}else {				$this->errorMsg				.= sprintf("%s isn't exists!", $fileName);				if($this->debug)exit(sprintf("%s isn't exists!", $fileName));				return false;							}		}		function setFileType()		{		    $this->xlq_filetype['chm']='application/octet-stream';		    $this->xlq_filetype['ppt']='application/vnd.ms-powerpoint';		    $this->xlq_filetype['xls']='application/vnd.ms-excel';		    $this->xlq_filetype['doc']='application/msword';		    $this->xlq_filetype['exe']='application/octet-stream';		    $this->xlq_filetype['rar']='application/octet-stream';		    $this->xlq_filetype['js']="javascrīpt/js";		    $this->xlq_filetype['css']="text/css";		    $this->xlq_filetype['hqx']="application/mac-binhex40";		    $this->xlq_filetype['bin']="application/octet-stream";		    $this->xlq_filetype['oda']="application/oda";		    $this->xlq_filetype['pdf']="application/pdf";		    $this->xlq_filetype['ai']="application/postsrcipt";		    $this->xlq_filetype['eps']="application/postsrcipt";		    $this->xlq_filetype['es']="application/postsrcipt";		    $this->xlq_filetype['rtf']="application/rtf";		    $this->xlq_filetype['mif']="application/x-mif";		    $this->xlq_filetype['csh']="application/x-csh";		    $this->xlq_filetype['dvi']="application/x-dvi";		    $this->xlq_filetype['hdf']="application/x-hdf";		    $this->xlq_filetype['nc']="application/x-netcdf";		    $this->xlq_filetype['cdf']="application/x-netcdf";		    $this->xlq_filetype['latex']="application/x-latex";		    $this->xlq_filetype['ts']="application/x-troll-ts";		    $this->xlq_filetype['src']="application/x-wais-source";		    $this->xlq_filetype['zip']="application/zip";		    $this->xlq_filetype['bcpio']="application/x-bcpio";		    $this->xlq_filetype['cpio']="application/x-cpio";		    $this->xlq_filetype['gtar']="application/x-gtar";		    $this->xlq_filetype['shar']="application/x-shar";		    $this->xlq_filetype['sv4cpio']="application/x-sv4cpio";		    $this->xlq_filetype['sv4crc']="application/x-sv4crc";		    $this->xlq_filetype['tar']="application/x-tar";		    $this->xlq_filetype['ustar']="application/x-ustar";		    $this->xlq_filetype['man']="application/x-troff-man";		    $this->xlq_filetype['sh']="application/x-sh";		    $this->xlq_filetype['tcl']="application/x-tcl";		    $this->xlq_filetype['tex']="application/x-tex";		    $this->xlq_filetype['texi']="application/x-texinfo";		    $this->xlq_filetype['texinfo']="application/x-texinfo";		    $this->xlq_filetype['t']="application/x-troff";		    $this->xlq_filetype['tr']="application/x-troff";		    $this->xlq_filetype['roff']="application/x-troff";		    $this->xlq_filetype['shar']="application/x-shar";		    $this->xlq_filetype['me']="application/x-troll-me";		    $this->xlq_filetype['ts']="application/x-troll-ts";		    $this->xlq_filetype['gif']="image/gif";		    $this->xlq_filetype['jpeg']="image/pjpeg";		    $this->xlq_filetype['jpg']="image/pjpeg";		    $this->xlq_filetype['jpe']="image/pjpeg";		    $this->xlq_filetype['ras']="image/x-cmu-raster";		    $this->xlq_filetype['pbm']="image/x-portable-bitmap";		    $this->xlq_filetype['ppm']="image/x-portable-pixmap";		    $this->xlq_filetype['xbm']="image/x-xbitmap";		    $this->xlq_filetype['xwd']="image/x-xwindowdump";		    $this->xlq_filetype['ief']="image/ief";		    $this->xlq_filetype['tif']="image/tiff";		    $this->xlq_filetype['tiff']="image/tiff";		    $this->xlq_filetype['pnm']="image/x-portable-anymap";		    $this->xlq_filetype['pgm']="image/x-portable-graymap";		    $this->xlq_filetype['rgb']="image/x-rgb";		    $this->xlq_filetype['xpm']="image/x-xpixmap";		    $this->xlq_filetype['txt']="text/plain";		    $this->xlq_filetype['c']="text/plain";		    $this->xlq_filetype['cc']="text/plain";		    $this->xlq_filetype['h']="text/plain";		    $this->xlq_filetype['html']="text/html";		    $this->xlq_filetype['htm']="text/html";		    $this->xlq_filetype['htl']="text/html";		    $this->xlq_filetype['rtx']="text/richtext";		    $this->xlq_filetype['etx']="text/x-setext";		    $this->xlq_filetype['tsv']="text/tab-separated-values";		    $this->xlq_filetype['mpeg']="video/mpeg";		    $this->xlq_filetype['mpg']="video/mpeg";		    $this->xlq_filetype['mpe']="video/mpeg";		    $this->xlq_filetype['avi']="video/x-msvideo";		    $this->xlq_filetype['qt']="video/quicktime";		    $this->xlq_filetype['mov']="video/quicktime";		    $this->xlq_filetype['moov']="video/quicktime";		    $this->xlq_filetype['movie']="video/x-sgi-movie";		    $this->xlq_filetype['au']="audio/basic";		    $this->xlq_filetype['snd']="audio/basic";		    $this->xlq_filetype['wav']="audio/x-wav";		    $this->xlq_filetype['aif']="audio/x-aiff";		    $this->xlq_filetype['aiff']="audio/x-aiff";		    $this->xlq_filetype['aifc']="audio/x-aiff";		    $this->xlq_filetype['swf']="application/x-shockwave-flash";		}				function setFilter($fileFilter)		{			if(empty($fileFilter))return ;			$this->filter	= explode(",", strtolower($fileFilter));		}				function setDebug($debug)		{			$this->debug	= $debug;		}				function setlimittime($limittime)		{			$this->limitTime	= $limittime;		}				function getfilename($filename)		{			return  $this->fileName;		}				function getErrorMsgs()		{			return $this->errorMsg;			}				function __destruct()		{			$this->errorMsg			= '';		}	}?>

//?? 使用范例:

?$filename='data.rar';
?$download=new download('php,exe,html',false);
? if(!$download->downloadfile($filename,'數(shù)據(jù)'))
? {
????????? echo $download->geterrormsg();
? }

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Sujets chauds

Tutoriel PHP
1502
276
Quelles sont les différences entre Huawei GT3 Pro et GT4 ? Quelles sont les différences entre Huawei GT3 Pro et GT4 ? Dec 29, 2023 pm 02:27 PM

De nombreux utilisateurs choisiront la marque Huawei lors du choix des montres intelligentes. Parmi eux, les Huawei GT3pro et GT4 sont des choix très populaires. De nombreux utilisateurs sont curieux de conna?tre la différence entre Huawei GT3pro et GT4. Quelles sont les différences entre Huawei GT3pro et GT4 ? 1. Apparence GT4 : 46 mm et 41 mm, le matériau est un miroir en verre + un corps en acier inoxydable + une coque arrière en fibre haute résolution. GT3pro : 46,6 mm et 42,9 mm, le matériau est du verre saphir + corps en titane/corps en céramique + coque arrière en céramique 2. GT4 sain : en utilisant le dernier algorithme Huawei Truseen5.5+, les résultats seront plus précis. GT3pro?: ajout d'un électrocardiogramme ECG, d'un vaisseau sanguin et de la sécurité

Correctif?: l'outil de capture ne fonctionne pas sous Windows 11 Correctif?: l'outil de capture ne fonctionne pas sous Windows 11 Aug 24, 2023 am 09:48 AM

Pourquoi l'outil Snipping ne fonctionne pas sous Windows 11 Comprendre la cause première du problème peut aider à trouver la bonne solution. Voici les principales raisons pour lesquelles l'outil de capture peut ne pas fonctionner correctement?: L'assistant de mise au point est activé?: cela empêche l'ouverture de l'outil de capture. Application corrompue?: si l'outil de capture plante au lancement, il est peut-être corrompu. Pilotes graphiques obsolètes?: des pilotes incompatibles peuvent interférer avec l'outil de capture. Interférence provenant d'autres applications?: d'autres applications en cours d'exécution peuvent entrer en conflit avec l'outil de capture. Le certificat a expiré?: une erreur lors du processus de mise à niveau peut provoquer ce problème. Solution simple. Celles-ci conviennent à la plupart des utilisateurs et ne nécessitent aucune connaissance technique particulière. 1. Mettez à jour les applications Windows et Microsoft Store

Quel est le principe de l'application python WSGI ? Quel est le principe de l'application python WSGI ? May 19, 2023 pm 01:25 PM

L'environnement Python sur lequel s'appuie cet article est le suivant?: Qu'est-ce que WSGI?? WSGI est également appelé interface de passerelle universelle du serveur Web et son nom complet est webservergatewayinterface. Il définit une norme sur la manière dont les serveurs Web et les applications Web doivent communiquer et gérer les requêtes et les réponses http en Python. Notez qu'il ne s'agit que d'un protocole, ou d'une spécification ou d'une norme. Vous n'êtes pas obligé de suivre cette norme. serveur que nous avons écrit dans l'article précédent. WSGI est également divisé en applications et passerelles de serveur. Parmi elles, le célèbre Flask appartient aux applications, et uWSGI et wsgiref appartiennent aux passerelles de serveur. Sentiment personnel, WSG

Quelle est la différence entre le bootstrap et l'application dans SpringBoot ? Quelle est la différence entre le bootstrap et l'application dans SpringBoot ? May 16, 2023 pm 05:46 PM

La différence entre le bootstrap et l'application explique que le bootstrap et l'application sont des fichiers de configuration dans le projet SpringBoot. Leurs différences incluent principalement les aspects suivants (1) La différence d'ordre de chargement est chargée en premier avant le fichier de configuration de l'application, car le bootstrap l'est. composé de Le contexte parent Spring est chargé et l'application est chargée par le contexte enfant (2) Différence de priorité Les informations de configuration chargées par bootstrap ne peuvent pas être écrasées par la même configuration de l'application Si deux fichiers de configuration existent en même temps, bootstrap sera le principal (

Comment réparer l'erreur Impossible de se connecter à l'App Store sur iPhone Comment réparer l'erreur Impossible de se connecter à l'App Store sur iPhone Jul 29, 2023 am 08:22 AM

Partie 1?:?étapes de dépannage initiales Vérification de l'état du système Apple?: avant d'aborder des solutions complexes, commen?ons par les bases. Le problème ne vient peut-être pas de votre appareil?; les serveurs Apple sont peut-être en panne. Visitez la page état du système d'Apple pour voir si l'AppStore fonctionne correctement. S'il y a un problème, tout ce que vous pouvez faire est d'attendre qu'Apple le résolve. Vérifiez votre connexion Internet?: assurez-vous que vous disposez d'une connexion Internet stable, car le problème "Impossible de se connecter à l'AppStore" peut parfois être attribué à une mauvaise connexion. Essayez de basculer entre le Wi-Fi et les données mobiles ou de réinitialiser les paramètres réseau (Général > Réinitialiser > Réinitialiser les paramètres réseau > Paramètres). Mettez à jour votre version iOS?:

php提交表單通過后,彈出的對(duì)話框怎樣在當(dāng)前頁彈出,該如何解決 php提交表單通過后,彈出的對(duì)話框怎樣在當(dāng)前頁彈出,該如何解決 Jun 13, 2016 am 10:23 AM

php提交表單通過后,彈出的對(duì)話框怎樣在當(dāng)前頁彈出php提交表單通過后,彈出的對(duì)話框怎樣在當(dāng)前頁彈出而不是在空白頁彈出?想實(shí)現(xiàn)這樣的效果:而不是空白頁彈出:------解決方案--------------------如果你的驗(yàn)證用PHP在后端,那么就用Ajax;僅供參考:HTML code

Voyons pourquoi Vue2 peut accéder aux attributs dans diverses options via ceci Voyons pourquoi Vue2 peut accéder aux attributs dans diverses options via ceci Dec 08, 2022 pm 08:22 PM

Cet article vous aidera à interpréter le code source de Vue et à vous expliquer pourquoi vous pouvez l'utiliser pour accéder aux propriétés de diverses options de Vue2. J'espère qu'il sera utile à tout le monde !

Comment optimiser la durée de vie de la batterie de l'iPad avec iPadOS 17.4 Comment optimiser la durée de vie de la batterie de l'iPad avec iPadOS 17.4 Mar 21, 2024 pm 10:31 PM

Comment optimiser la durée de vie de la batterie de l'iPad avec iPadOS 17.4 L'extension de la durée de vie de la batterie est la clé de l'expérience des appareils mobiles, et l'iPad en est un bon exemple. Si vous avez l'impression que la batterie de votre iPad se décharge trop rapidement, ne vous inquiétez pas, il existe un certain nombre d'astuces et d'ajustements dans iPadOS 17.4 qui peuvent prolonger considérablement la durée de fonctionnement de votre appareil. L'objectif de ce guide détaillé n'est pas seulement de fournir des informations, mais aussi de changer la fa?on dont vous utilisez votre iPad, d'améliorer la gestion globale de votre batterie et de garantir que vous pouvez compter sur votre appareil plus longtemps sans avoir à le charger. En adoptant les pratiques décrites ici, vous faites un pas vers une utilisation plus efficace et plus consciente de la technologie, adaptée à vos besoins individuels et à vos modèles d'utilisation. Identifier les grands consommateurs d’énergie

See all articles