class cFile {
// класс работы с файлами
var $error = 0;
function upload_file($filename, $FILES, $dirname, $changename=1, $size=0, $width=0, $height=0) {
// загружает файл на сервер
// $filename - имя файла
// $FILES - массив $_FILES
// $dirname - директория для загрузки
// $changename - изменять ли имя файла (1-да, 0-нет)
// возвращает имя файла на сервере
if (@is_uploaded_file($FILES[$filename]['tmp_name'])) {
/*$img_types = array("image/jpeg", "image/pjpeg", "image/gif", "image/png", "application/pdf");
if (!in_array($FILES[$filename]['type'], $img_types)) {
$this->error = 12;
return 0;
}*/
if ($changename) {
$row = explode('.', $FILES[$filename]['name']);
$uploadfile = ereg_replace(' ', '', microtime()).'.'.$row[sizeof($row)-1];
} else {
$uploadfile = $FILES[$filename]['name'];
}
if (!@move_uploaded_file($FILES[$filename]['tmp_name'], $dirname.$uploadfile)) {
$this->error = 'Ошибка: невозможно загрузить файл';
return 0;
} else if ($size) {
$arr = getImageSize($dirname.$uploadfile);
$im_height = $arr[1];
$im_width = $arr[0];
if (($height && ($im_height!=$height)) || ($width && ($im_width!=$width))) {
if (!$height)
$height = 'произвольная';
else
$height .= ' px';
if (!$width)
$width = 'произвольная';
else
$width .= ' px';
$this->error = "
Размер изображения должен быть: ширина-$width, высота-$height";
unlink($dirname.$uploadfile);
return 0;
}
}
} else {
$this->error = 'Ошибка: невозможно загрузить файл';
return 0;
}
return $uploadfile;
}
function get_image_html($name, $dir, $alt='', $align='', $add='') {
// возвращает html-код для картинки
$ret = '';
if (trim($name)) {
$arr = @getImageSize(@$dir.$name);
$ret = '
';
}
return $ret;
}
function ExtensionFor($filename) {
if (is_uploaded_file($_FILES[$filename]['tmp_name'])) {
$row = explode('.', $_FILES[$filename]['name']);
if (sizeof($row) != 1) {
return $row[sizeof($row)-1];
} else {
return '';
}
}
}
function Upload($location, $filename, $dirname, $name = '') {
if (@is_uploaded_file($_FILES[$filename]['tmp_name'])) {
$name = $name ? $dirname.$name : $dirname;
if (!@move_uploaded_file($_FILES[$filename]['tmp_name'], $name)) {
header("Location: {$location}&error=upload_error");
exit;
}
} else {
header("Location: {$location}&error=upload_error");
exit;
}
return 1;
}
function Resize($type, $source, $destination, $width, $height, $color = 0xFFFFFF, $quality = 100) {
if (!$type) {
return 0;
}
$size = getimagesize($source);
$format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
$icfunc = "imagecreatefrom".$format;
$x_ratio = $width ? $width / $size[0] : 1;
$y_ratio = $height ? $height / $size[1] : 1;
$width = !$width ? $size[0] * $y_ratio : $width;
$height = !$height ? $size[1] * $x_ratio : $height;
if ($type == 'width') {
$height = $size[1] * $x_ratio;
$use_x_ratio = 0;
$ratio = $x_ratio;
} elseif ($type == 'height') {
$width = $size[0] * $y_ratio;
$use_x_ratio = 1;
$ratio = $y_ratio;
} else {
$ratio = min($x_ratio, $y_ratio);
$use_x_ratio = ($x_ratio == $ratio);
}
$new_width = $use_x_ratio ? $width : floor($size[0] * $ratio);
$new_height = !$use_x_ratio ? $height : floor($size[1] * $ratio);
$new_left = $use_x_ratio ? 0 : floor(($width - $new_width) / 2);
$new_top = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);
$i_src = $icfunc($source);
$i_dest = imagecreatetruecolor($width, $height);
imagefill($i_dest, 0, 0, $color);
imagecopyresampled($i_dest, $i_src, $new_left, $new_top, 0, 0, $new_width, $new_height, $size[0], $size[1]);
imagejpeg($i_dest, $destination, $quality);
imagedestroy($i_src);
imagedestroy($i_dest);
}
}
?>
class cHtml {
// класс с допольнительными функциями
function make_select_list($data_array, $name, $selected=0, $add_param='') {
// возвращает html-select
// $data_array - массив с данными
// $name - название списка
// $add_param - дополнительные параметры
$ret = '';
if (count($data_array)) {
while ($line = @each($data_array)) {
$select_string = '';
if ($line['value']==$selected)
$select_string = ' selected';
$ret .= '';
}
$ret = '';
return $ret;
}
return 0;
}
function to_db($var) {
// подготавливает переменную к помещению в БД
$var = trim(addslashes($var));
str_replace("'", '"', $var);
return $var;
}
function from_db($var, $allow_html_tags=0, $replace_ret=0) {
$var = stripslashes($var);
if (!$allow_html_tags)
$var = htmlspecialchars(strip_tags($var));
if ($replace_ret)
$var = nl2br($var);
return $var;
}
}
?>