фу-кция которая принемает с формы данние:
public function set_id()
{
if ($_POST['upload'] ) {
$allowed_filetypes = array('.jpg','.JPG','.Jpg','.gif','.GIF','.Gif','.bmp','.BMP','.Bmp','.png','.PNG','.Png'); // допустимые формати
$max_filesize = 5242880; // мак.розмір 5 mb
$upload_path = 'fancybox/example_jquery/fancybox_img/'; //папка загрузки
$name = $_FILES['userfile']['name']; //новое имя
$filename ='photo_'.$this->get_id().'_'.$name;
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
if(strlen($_FILES['userfile']['tmp_name']) < 1)
die('вкажи файл для загрузки');
if(!in_array($ext,$allowed_filetypes))
die('wrong format');
if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
die('надто великий файл');
if(!is_writable($upload_path))
die('директорія закрита від запису.');
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path.$filename))
{
$this->insert_photo_id($filename);//zapus v bazy
die('загрузился. <a href="' . $upload_path . $filename . '">смотреть</a><br>');
}
else
echo 'ерор';
}
}
// здесь я беру цыфру которая добавляется к названию фотки
public function get_id()
{
$this->admin_connect_bd();
$result = mysql_query('SELECT MAX(`id`) FROM photo') or die(mysql_error());
if (mysql_num_rows($result) > 0)
{
// $result;
return (mysql_result($result,0)+1);
}
return null;
}
Спустя 56 секунд (1.02.2012 - 16:22) Oggy написал(а):
как сделать копию а потом уменьшить её?
Спустя 2 минуты, 48 секунд (1.02.2012 - 16:25) T1grOK написал(а):
Загоняешь фотку через GD уменьшаешь и просто сохраняешь под другим именем или в другую папку. Тобишь уменьшеная копия получится "сразу" с оригинала.
Спустя 1 минута, 2 секунды (1.02.2012 - 16:26) neadekvat написал(а):
copy() - копия.
imagecopyresized() - ресайз.
imagecopyresized() - ресайз.
Спустя 7 минут, 54 секунды (1.02.2012 - 16:34) Oggy написал(а):
Цитата (neadekvat @ 1.02.2012 - 13:26) |
copy() - копия. imagecopyresized() - ресайз. |
можно так копировать?
$newfile =$name;
if (!copy($name, $newfile)) {
echo "не удалось скопировать $file...\n";
}
Спустя 1 час, 13 минут, 1 секунда (1.02.2012 - 17:47) Oggy написал(а):
Цитата (neadekvat @ 1.02.2012 - 13:26) |
copy() - копия. imagecopyresized() - ресайз. |
imagecopyresized()... а что в скобках писать?
Спустя 1 минута, 39 секунд (1.02.2012 - 17:49) GET написал(а):
Oggy
там не все просто так...
nt imagecopyresized (resource dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)
там не все просто так...
nt imagecopyresized (resource dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)
Спустя 18 секунд (1.02.2012 - 17:49) neadekvat написал(а):
Цитата (Oggy @ 1.02.2012 - 17:34) |
можно так копировать? |
Ну, попробуй.. Но прежде, подумай, зачем один файл копировать в себя же.
Цитата (Oggy @ 1.02.2012 - 18:47) |
а что в скобках писать? |
В документации написано. Там заодно и примеры кода приведены.
Спустя 33 минуты, 35 секунд (1.02.2012 - 18:22) Bustle написал(а):
Чёт типа такого
<?php
class UploadCrop {
private $upload_dir = "uploads";
private $max_file = "5242880";
private $types = array('image/gif', 'image/png', 'image/jpeg');
private $max_width = "500";
private $max_height = "500";
private $thumb_width = "100";
private $thumb_height = "100";
private $errorBox = array (
"forbiddenFiles" => "Запрещенный тип файла",
"bigSize" => "Большой размер файла"
);
function __construct () {
$this->__createDir ($this->upload_dir);
}
public function uploadImage () {
$new_image = $this->upload_dir . "/" . $_FILES['userfile']['name'];
if (!in_array($_FILES['userfile']['type'], $this->types)) {
$this->__errorMessage["forbiddenFiles"];
}
if ($_FILES['userfile']['size'] > $this->max_file) {
$this->__errorMessage["bigSize"];
}
$source = $this->__toJpeg ($_FILES['userfile']);
$source = $this->__resizeImage ($source);
imagejpeg($source, $new_image, 90);
$sizes['width'] = imagesx($source);
$sizes['height'] = imagesy($source);
$sizes['thumbW'] = $this->thumb_width;
$sizes['thumbH'] = $this->thumb_height;
return $sizes;
}
public function createThumbnailImage($image, $width, $height, $start_width, $start_height){
$newImage = imagecreatetruecolor($this->thumb_width,$this->thumb_height);
$source = imagecreatefromjpeg($this->upload_dir . "/" . $image);
imagecopyresampled($newImage,$source,0,0,$start_width,$start_height,$this->thumb_width,$this->thumb_height,$width,$height);
$thumb_image_name = $this->upload_dir . "/min_" . $image;
imagejpeg($newImage,$thumb_image_name,90);
chmod($thumb_image_name, 0777);
return $thumb_image_name;
}
private function __createDir ($dir) {
if(!is_dir($dir)){
mkdir($dir, 0777);
chmod($dir, 0777);
}
}
private function __toJpeg ($file) {
if ($file['type'] == 'image/jpeg')
$source = imagecreatefromjpeg($file['tmp_name']);
elseif ($file['type'] == 'image/png')
$source = imagecreatefrompng($file['tmp_name']);
elseif ($file['type'] == 'image/gif')
$source = imagecreatefromgif($file['tmp_name']);
else
return false;
return $source;
}
private function __resizeImage ($image) {
$width = imagesx($image);
$height = imagesy($image);
if ($width > $this->max_width) {
$scale = $this->max_width/$width;
$newImageWidth = ceil($width * $scale);
$newImageHeight = ceil($height * $scale);
$newImage = imagecreatetruecolor($newImageWidth,$newImageHeight);
imagecopyresampled($newImage,$image,0,0,0,0,$newImageWidth,$newImageHeight,$width,$height);
return $newImage;
} else {
return $image;
}
}
private function __errorMessage ($error) {
die ($errorBox[$error]);
}
}
?>