English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Ejemplo de código de clasificación de archivos de carga php

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.)

Te gustaría que lo probases