[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Форма загрузки фото и миниатюры
user
Этот скрипт загружает фотку и её миниатюру.
Как же это адаптировать в 2 файла (upload.php и add.php), и чтобы имя фотки и минифотки заносилось в БД? Help! =) Самостоятельно неполучаться ....




Спустя 4 минуты, 22 секунды (30.07.2009 - 19:35) Kuliev написал(а):
user
Реализовать легко, а вот качать твой скрипт лень!

Спустя 22 минуты, 19 секунд (30.07.2009 - 19:57) user написал(а):
Скрипт для тех кому лень качать wink.gif

1.Сама форма

PHP
<?php 
require 
'config.php'; //Подключаем файл конфигурации
require 'process.php'; //Подключаем файл-обработчик

if(isset($_FILES['fupload'])) {
    
    if
(preg_match('/[.](jpg)|(gif)|(png)$/', //Ставим допустимые форматы изображений для загрузки
     $_FILES['fupload']['name'])) {
        
        $filename 
= $_FILES['fupload']['name'];
        $source = $_FILES['fupload']['tmp_name'];    
        $target 
= $path_to_image_directory . $filename;
        
        move_uploaded_file
($source, $target);
        
        createThumbnail
($filename);        
    
}
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

<head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1251" />
    <meta name="author" content="" />
    <title>Делаем миниатюры на лету с использованием PHP</title>
</head>

<body>
    <h1>Загрузка изображений:</h1>
    <form enctype="multipart/form-data" action="" method="post">
        <p>
          <input type="file" name="fupload" />
    </p>
        <p>text</p>
        <p>
          <label>Коментарий <br />
          <input type="text" name="coment" />
          </label>
        </p>
      <p>&nbsp;</p>
        <p>      
          <


2. Конфигурация
PHP
<?
$final_width_of_image = 100; //Размер изображения которые Вы хотели бы получить (И ШИРИНА И ВЫСОТА)
$path_to_image_directory = 'images/full/'; //Папка, куда будут загружаться полноразмерные изображения
$path_to_thumbs_directory = 'images/thumbs/';//Папка, куда будут загружать миниатюры



3. Обработчик

PHP
<?
function createThumbnail($filename) {
    
  require 
'config.php'; //Подключаем файл конфигурации
  
  if
(preg_match('/[.](jpg)$/', $filename)) {
  $im = imagecreatefromjpeg($path_to_image_directory . $filename);
  } else if (preg_match('/[.](gif)$/', $filename)) {
  $im = imagecreatefromgif($path_to_image_directory . $filename);
  } else if (preg_match('/[.](png)$/', $filename)) {
  $im = imagecreatefrompng($path_to_image_directory . $filename);
  } //Определяем формат изображения
  
  $ox 
= imagesx($im);
  $oy = imagesy($im);
  
  $nx 
= $final_width_of_image;
  $ny = floor($oy * ($final_width_of_image / $ox));
  
  $nm 
= imagecreatetruecolor($nx, $ny);
  
  imagecopyresized
($nm, $im, 0,0,0,0,$nx,$ny,$ox,$oy);
  
  if
(!file_exists($path_to_thumbs_directory)) {
  if(!mkdir($path_to_thumbs_directory)) {
  die("Возникли проблемы! попробуйте снова!");
  } 
  
}
 imagejpeg($nm, $path_to_thumbs_directory . $filename);
  $tn = '<img src="' . $path_to_thumbs_directory . $filename . '" alt="image" />';
  $tn .= '<br />Поздравляем! Ваше изображение успешно загружено и его миниатюра удачно выполнена. Выше Вы можете просмотреть результат:';
  echo $tn;
  }//Сжимаем изображение, если есть оишибки, то говорим о них, если их нет, то выводим получившуюся миниатюру

Спустя 4 минуты, 15 секунд (30.07.2009 - 20:01) Kuliev написал(а):
user
Ну так в чем проблема, имя файла известна, путь тоже, что мешает Вам эти данные записать в БД или файл?

Спустя 42 минуты, 41 секунда (30.07.2009 - 20:44) PandoraBox2007 написал(а):
справа выберем тип файла

SQL
substr($filename, strrpos($filename, '.'))


(String Right Position), регулярки в данном случае только замедляют


SQL
CREATE TABLE `images` (
`id` int(11) NOT NULL,
`image_path` varchar(255) NOT NULL,
`miniature` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251


PHP
$image_path = htmlspecialchars('');
$miniature = htmlspecialchars('');

$sql = "INSERT INTO images (image_path, miniature) VALUES ('$image_path', '$miniature')";

if (!mysql_query($sql))
{
 die('Ошибка БД.');
}

Спустя 1 час, 48 минут, 28 секунд (30.07.2009 - 22:32) user написал(а):
Ещё в самой форме есть текстовое поле "Коментарий", на сколько я знаю, идёт переменная $coment в файл Обработчик. Добавление коментария в БД будет таким?
PHP
$sql "INSERT INTO images (image_path, miniature, coment) VALUES ('$image_path', '$miniature', '$coment')";


Соединение с базой в каком файле и где именно писать ?



____
Извините за глупые вопросы но я только учусь wink.gif wink.gif

Спустя 4 минуты, 56 секунд (30.07.2009 - 22:37) twin написал(а):
Цитата
Соединение с базой в каком файле и где именно писать ?

Тут глянь

Спустя 16 часов, 22 минуты, 32 секунды (31.07.2009 - 15:00) user написал(а):
Всё равно у меня что то не получается...
Выкидывает ошибки типа:

Notice: Undefined variable: path_to_image_directory
Warning: imagecreatefromjpeg(78779243.jpg): failed to open stream: No such file or directory
Warning: imagesx(): supplied argument is not a valid Image resource
Notice: Undefined variable: final_width_of_image
Notice: Undefined variable: final_width_of_image
Warning: Division by zero
Warning: imagecreatetruecolor(): Invalid image dimensions
Warning: imagecopyresized(): supplied argument is not a valid Image resource
Notice: Undefined variable: path_to_thumbs_directory
Notice: Undefined variable: path_to_thumbs_directory


sad.gif Help, нужны ваши соображения!
Вот сам код:

PHP
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>TEST FORM</title>
<
link href="style.css" rel="stylesheet" type="text/css">
<
style type="text/css">
</
style>
</
head>
<
body>
<
table width="893" border="0" align="center" bordercolor="#FFFFFF" bgcolor="#FFFFFF" class="main_border"><tr><td colspan="2" valign="top" bordercolor="#FFFFFF"><table width="913" border="0" align="center" bordercolor="#FFFFFF" bgcolor="#FFFFFF" class="main_border">
  <
tr bordercolor="#FFFFFF">
    <
td width="252" height="139" bgcolor="#FFFFFF">
      <
table width="252" border="0">
          <
td width="741" valign="top" bgcolor="#FFFFFF"><br>
            
            
            
            <
form enctype="multipart/form-data" action="?" method="post"><br>
              
ФОТО:
<
br>        
              <
input name="fupload" type="file" id="file" size="60" />    
</
label>
<
br>    
<
label><br>
            
Коментарий:
<
br>
         <
input name="coment" type="text" size="28">
          </
label
  
        </
tr>
    </
table></td>
  </
tr>
  
<?  include (
"bd.php");  /* Соединяемся с базой */ ?>

<? $final_width_of_image 100//Размер изображения которые Вы хотели бы получить (И ШИРИНА И ВЫСОТА)
$path_to_image_directory 'images/full/'//Папка, куда будут загружаться полноразмерные изображения
$path_to_thumbs_directory 'images/thumbs/';//Папка, куда будут загружать миниатюры ?>

<? if(isset($_FILES['fupload'])) 
{    if(
preg_match('/[.](jpg)|(gif)|(png)$/'//Ставим допустимые форматы изображений для загрузки
     
$_FILES['fupload']['name'])) 
     { 
$filename $_FILES['fupload']['name'];
        
$source $_FILES['fupload']['tmp_name'];    
        
$target $path_to_image_directory $filename;
        
        
move_uploaded_file($source$target);
        
        
createThumbnail($filename);    } } ?>


<? /* Обработка */ function createThumbnail($filename) {
    
  if(
preg_match('/[.](jpg)$/'$filename)) {
  
$im imagecreatefromjpeg($path_to_image_directory $filename);
  } else if (
preg_match('/[.](gif)$/'$filename)) {
  
$im imagecreatefromgif($path_to_image_directory $filename);
  } else if (
preg_match('/[.](png)$/'$filename)) {
  
$im imagecreatefrompng($path_to_image_directory $filename);
  } 
//Определяем формат изображения
  
  
$ox imagesx($im);
  
$oy imagesy($im);
  
  
$nx $final_width_of_image;
  
$ny floor($oy * ($final_width_of_image $ox));
  
  
$nm imagecreatetruecolor($nx$ny);
  
  
imagecopyresized($nm$im0,0,0,0,$nx,$ny,$ox,$oy);
  
  if(!
file_exists($path_to_thumbs_directory)) {
  if(!
mkdir($path_to_thumbs_directory)) {
  die(
"Возникли проблемы! попробуйте снова!");
  } 
  }
 
imagejpeg($nm$path_to_thumbs_directory $filename);
  
$tn '<img src="' $path_to_thumbs_directory $filename '" alt="image" />';
  
$tn .= '<br />Поздравляем! Ваше изображение успешно загружено и его миниатюра удачно выполнена. Выше Вы можете просмотреть результат:';
  echo 
$tn;
  }
//Сжимаем изображение, если есть оишибки, то говорим о них, если их нет, то выводим получившуюся миниатюру ?>


<?php  /* Заносим в базу и */if (isset($photo) && isset($coment))

{
$result mysql_query ("INSERT INTO table1 (photo,coment) VALUES ('$filename','$coment',)");
if (
$result == true) {echo "<p>Ok</p>";}
else { echo 
"<p><strong>Ошибка!</strong></p>";}
}
else  {echo 
"<p><strong>Не заполнены все поля</strong> </p>";} ?>


</table>  <span class="style2"></span></td>
  </tr>
</tab

Спустя 5 дней, 21 час, 18 минут, 46 секунд (7.08.2009 - 12:19) user написал(а):
Спасибо за внимание, сам справился biggrin.gif cool.gif

Спустя 1 год, 11 месяцев, 15 дней, 4 часа, 37 минут, 32 секунды (22.07.2011 - 16:56) Guest написал(а):
Скрытый текст
авпвап
ваппавап[flipv]ввапва

Спустя 18 дней, 8 часов, 4 минуты, 59 секунд (11.08.2011 - 01:01) liberty87 написал(а):
Надеюсь не оффтоп...
Родные, а никто не знает хорошего он-лайн самоучителя по работе с изображениями? Просто эта тема постоянно становится у меня камнем предкновения, а каждый раз тупо копировать исходники надоедло...


_____________
____
Извините за глупые вопросы но я только учусь ;) ;)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.