English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Non c'è bisogno di dilungarsi, passiamo direttamente al codice, come segue:
<?php /** * Classe per il caricamento dei file * @author lijiamin * @time 2017-02-17 * @email [email protected] */ class Upload{ private $allowExt = array('gif','jpg','jpeg','bmp','png','swf'); // Limita gli estensioni dei file caricati private $maxSize = 1; // Limita la dimensione massima del file caricato a 1M /** * Ottieni le informazioni del file * @param str $flag Identificatore del file caricato * @return arr Array di informazioni sul file caricato */ public function getInfo($flag){ return $_FILES[$flag]; } /** * Ottieni l'estensione del file * @param str $filename Nome del file * @return str Estensione del file */ public function getExt($filename){ return pathinfo($filename,PATHINFO_EXTENSION); } /** * Verifica se il file caricato è legittimo * @param str $filename Nome del file * @return bool Estensione del file valida? */ private function checkExt($filename){ $ext = $this->getExt($filename); return in_array($ext,$this->allowExt); } /** * Verifica se la dimensione del file supera il limite * @param int size Dimensione del file * @return bool Il file è più grande del limite? */ public function checkSize($size){ return $size < $this->maxSize * 1024 * 1024; } /** * Nome casuale del file * @param int $len Lunghezza della stringa casuale * @return str Stringa casuale */ public function randName($len=6){ return substr(str_shuffle('abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ234565789'),0,$len); } /** * Crea il percorso di upload dei file * @return str Percorso di upload dei file */ public function createDir(){ //Percorso di upload dei file $dir = './upload/'.date('Y/m/d',time()); //Verifica dell'esistenza della cartella, se non esiste viene creata if(is_dir($dir) || mkdir($dir,0777,true)){ return $dir; } } /** * Upload di file * @param str $flag Identificatore di upload di file * @return array Restituisce il nome del file caricato, il percorso di salvataggio */ public function uploadFile($flag){ if($_FILES[$flag]['name'] === '' || $_FILES[$flag]['error'] !== 0){ echo "Nessun file caricato"; return; } $info = $this->getInfo($flag); if(!$this->checkExt($info['name'])){ echo "Tipo di file non supportato"; return; } if(!$this->checkSize($info['size'])){ echo "Dimensione del file superiore al limite"; return; } $filename = $this->randName().'.'.$this->getExt($info['name']); $dir = $this->createDir(); if(!move_uploaded_file($info['tmp_name'], $dir.'/'.$filename)){ echo "Fallimento dell'upload del file"; }else{ return array('filename'=>$filename,'dir'=>$dir); } } } ?>
Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, è di proprietà del rispettivo autore, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato sottoposto a editing umano e non assume alcuna responsabilità legale. Se trovi contenuti sospetti di violazione del copyright, invia un'e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare il problema e fornire prove pertinenti. Una volta verificata, questo sito eliminerà immediatamente il contenuto sospetto di violazione del copyright.