
18.12.2008, 02:34
|
|
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
С нами:
9185589
Репутация:
128
|
|
Сообщение от geforce
Ты можешь интегрировать тот код с уменьшением картинки в мой код сразу ???
PHP код:
<?php
// Подключаемься к базе данных
include ("db.php");
//================Настройки============= //
// максимальная ширина картинок на превью
$maxwidth = "300px";
// Директория для фотографий товаров
$fotos_dir = "fotos/";
$resizeWidth=215;
// Полное имя файла вместе с путем
$foto_name = $fotos_dir . time() . "_" . $_FILES['myfile']['name'];
// Готовый тэг для вставки картинки на страницу
$foto_tag = "<img src='{$foto_name}' border='0'>";
// Тот же тэг, но для превью
$foto_tag_preview = "<img src='{$foto_name}' border='0' width='{$maxwidth}'>";
// Текст ошибок
$error_by_mysql = "<span style='font: bold 15px tahoma; color: red'>Ошибка при добавлении данных в базу</span>";
$error_by_file = "<span style='font: bold 15px tahoma; color: red'>Невозможно загрузить файл в директорию. Возможно её не существует</span>";
// Начало
if (isset($_FILES["myfile"])) {
// Если ошибок не было
if (($_FILES["myfile"]["error"] == 0) && (in_array(strtolower(substr($_FILES['myfile']['name'], - 4)), array(".jpg" , ".gif" , ".png")))) {
$upfile = getcwd() . "/fotos/" . time() . "_" . basename($_FILES["myfile"]["name"]);
if ($_FILES['myfile']['tmp_name']){
//Если не удалось загрузить файл
if (! move_uploaded_file($_FILES['myfile']['tmp_name'], $upfile))
exit($error_by_file);
else
{//Вызов новой функции для изменения размеров, учти, что теперь только jpg & gif, если хочешь, то добавь png, там все одинково получится
openResizeAndSave($resizeWidth,$upfile);
}
}
else
exit ("Проблема: возможна атака через загрузку файла хотя проверяется это не так, а, наверное, просто нам подсовывают файл не с тем расширением {$_FILES ['myfile'] ['name']}");
// Заносим путь картинки в базу данных
$query = mysql_query("INSERT INTO foto (url,name) VALUES ('{$foto_name}','{$fotos_dir}{$foto_name}')", $db);
if ($query)
echo "{$foto_tag}Ъ<br /><b>Данные успешно внесены в базу</b>";
else
exit("<p>Ошибка сохранения данных.</p>" . mysql_error());
} else //Если возникла ошибка при передаче или левое расширение файла
exit("Ошибка обработки данных либо вы пытаетесь подсунуть нам свинью");
}
function openResizeAndSave($nWidth,$fileName)
{
switch(substr($fileName,-4))
{
case ".gif":
{
$Res=imagecreatefromgif($fileName);
$ext=($Res)?".gif":"";
break;
}
case ".jpg":
{
$Res=imagecreatefromjpeg($fileName);
$ext=($Res)?".jpg":"";
break;
}
default: return FALSE;
}
if($Res)
{
$Width=imagesx($Res);
$Height=imagesy($Res);
}
else
return FALSE;
$Koef=($nWidth/$Width);
$nHeight=(int)($Koef*$Height);
$nRes=imagecreatetruecolor($nWidth,$nHeight);
if(!imagecopyresampled($nRes,$Res,0,0,0,0,$nWidth,$nHeight,$Width,$Height))
return FALSE;
$Res=$nRes;
unlink($fileName);
switch($ext)
{
case ".jpg":
{
if(!imagejpeg($Res,$fileName))
return FALSE;
break;
}
case ".gif":
{
if(!imagegif($Res,$fileName))
return FALSE;
break;
}
default: return FALSE;
}
return TRUE;
}
?>
Держи, только что проверил, все работает отлично
|
|
|