English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
No quiero perder tiempo, aquí les dejo el código directamente, como se muestra a continuación:
<?php /** * Clase de subida de archivos * @author lijiamin * @time 2017-02-17 * @email [email protected] */ class Upload{ private $allowExt = array('gif','jpg','jpeg','bmp','png','swf');//Limitar los nombres de archivo de subida de archivos private $maxSize = 1;//Limitar el tamaño máximo de subida de archivos1M /** * Obtener la información del archivo * @param str $flag Identificador del archivo subido * @return arr Matriz de información del archivo subido */ public function getInfo($flag){ return $_FILES[$flag]; } /** * Obtener el sufijo del archivo * @param str $filename Nombre del archivo * @return str Extensión del archivo */ public function getExt($filename){ return pathinfo($filename,PATHINFO_EXTENSION); } /** * Verificar si el archivo subido es válido * @param str $filename Nombre del archivo * @return bool ¿El nombre de archivo tiene una extensión válida? */ private function checkExt($filename){ $ext = $this->getExt($filename); return in_array($ext,$this->allowExt); } /** * Verificar si el tamaño del archivo excede el límite * @param int size Tamaño del archivo * @return bool ¿El tamaño del archivo excede el límite? */ public function checkSize($size){ return $size < $this->maxSize * 1024 * 1024; } /** * Nombre de archivo aleatorio * @param int $len Longitud de la cadena aleatoria * @return str Cadena aleatoria */ public function randName($len=6){ return substr(str_shuffle('abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ234565789'),0,$len); } /** * Crear la ruta donde se subirá el archivo * @return str Ruta de subida de archivos */ public function createDir(){ //ruta de subida de archivos $dir = './upload/'.date('Y/m/d',time()); //comprobar si la carpeta existe, si no existe, crearla if(is_dir($dir) || mkdir($dir,0777,true)){ return $dir; } } /** * Carga de archivos * @param str $flag Identificador de carga de archivos * @return array Devuelve el nombre del archivo subido y la ruta de almacenamiento */ public function uploadFile($flag){ if($_FILES[$flag]['name'] === '' || $_FILES[$flag]['error'] !== 0){ echo "No se ha subido ningún archivo"; return; } $info = $this->getInfo($flag); if(!$this->checkExt($info['name'])){ echo "No se admite el tipo de archivo"; return; } if(!$this->checkSize($info['size'])){ echo "El tamaño del archivo excede el límite"; return; } $filename = $this->randName().'.'.$this->getExt($info['name']); $dir = $this->createDir(); if(!move_uploaded_file($info['tmp_name'], $dir.'/'.$filename')){ echo "La carga de archivos ha fallado"; } return array('filename'=>$filename,'dir'=>$dir); } } } ?>
Declaración: El contenido de este artículo se obtiene de la red, es propiedad del autor original, el contenido se contribuye y carga de manera autónoma por los usuarios de Internet, este sitio no posee los derechos de propiedad, no se ha realizado un procesamiento editorial humano y no asume responsabilidades legales relacionadas.3codebox.com (al enviar un correo electrónico, reemplace # con @ para denunciar y proporcione evidencia. Una vez confirmado, este sitio eliminará inmediatamente el contenido sospechoso de infracción de derechos de autor.)