Funkcja ta sprawdza czy na pewno plik określony przez nazwa_pliku jest prawidło uploadowanym plikiem (to znaczy, że został uploadowany przez PHPowy mechanizm uploadowania HTTP POST). Jeśli plik jest prawidłowy, to zostanie przeniesiony do nazwy pliku wskazanej przez przeznaczenie .
Ten rodzaj testów jest szczególnie ważny jeśli istnieje szansa, że cokolwiek robimy z przysłanymi plikami może zdradzić ich treść użytkownikowi lub nawet innym użytkownikom tego samego systemu.
Parametry
- nazwa_pliku - Nazwa wgrywanego pliku.
- przeznaczenie - Miejsce docelowe przenoszonego pliku.
Zwracane wartości
Jeśli nazwa_pliku nie jest prawidło uploadowanym plikiem, to żadna akcja nie zostanie wykonana i move_uploaded_file() zwróci FALSE.
Jeśli nazwa_pliku jest prawidłowo uploadowanym plikiem, ale nie może zostać przeniesiony z jakiś powodów, żadna akcja nie zostanie wykonana i move_uploaded_file() zwróci FALSE. Dodatkowo, zostanie pokazane ostrzeżenie.
Listing
<?php
function uploadFiles() {
$num_args = func_num_args();
$arg_list = func_get_args();
$valReturn = false;
$i = 0;
$unlinkElement = array();
foreach($arg_list as $key=>$value) {
if(is_array($value) AND is_array($value[0])) {
if($value[0]['error'] == 0 AND isset($value[1])) {
if($value[0]['size'] > 0 AND $value[0]['size'] < 500000) {
$typeAccepted = array("image/jpeg", "image/gif", "image/png");
if(in_array($value[0]['type'],$typeAccepted)) {
$destination = $value[1];
if(isset($value[2])) {
$extension = substr($value[0]['name'] , strrpos($value[0]['name'] , '.') +1);
$destination .= (str_replace(" ","-",$value[2])).".".$extension;
} else {
$destination .= $value[0]['name'];
}
if(move_uploaded_file($value[0]['tmp_name'],$destination)) {
$i++;
$unlinkElement[] = $destination;
}
}
}
}
}
}
if($i == $num_args) {
$valReturn = true;
} else {
foreach($unlinkElement as $value) {
unlink($value);
}
}
return $valReturn;
}
?>
Ranga: Administrator serwisu Punktów: 0