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

Esempio di codice di classificazione di file di upload php

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.

Ti potrebbe interessare