[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: db + img
Onehp
include '../bd.php';
echo "<form enctype = 'multipart/form-data' action = photo_add.php method = POST>
<input type = FILE name = zak><br><br>
<i>Подпись под фотоrрафией</i><br>
<input type = TEXT name = text size = 50><br><br>
<input type = SUBMIT name = otpr vаluе = 'Отправить'>
</form>"
;
include "mini_img.php";
include "func.php";

if ($_POST['otpr'] == true)
{
$nadp = $_POST['text'];
//переменной $nadp присваиваем содержимое текстового поля
$nadp = stripslashes($nadp);
$nadp = htmlspecialchars($nadp);
$user_photo_directory = 'photo/';//папка, куда будет загружаться начальная картинка и ее сжатая копия
if(preg_match('/[.](JPG)|(jpg)|(gif)|(GIF)|(png)|(PNG)|(jpeg)|(JPEG)$/',$_FILES['fupload']['name']))//проверка формата исходного изображения
{
$filename = $_FILES['fupload']['name'];
$source = $_FILES['fupload']['tmp_name'];
$target = $user_photo_directory . $filename;
move_uploaded_file($source, $target);//загрузка оригинала в папку $user_photo_directory
if(preg_match('/[.](GIF)|(gif)$/', $filename))
{
$im = imagecreatefromgif($user_photo_directory.$filename);
//если оригинал был в формате gif, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
if(preg_match('/[.](PNG)|(png)$/', $filename))
{
$im = imagecreatefrompng($user_photo_directory.$filename);
//если оригинал был в формате png, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename))
//если оригинал был в формате jpg, то создаем изображение в этом же формате. Необходимо для последующего сжатия
{
$im = imagecreatefromjpeg($user_photo_directory.$filename);
}

$date=time();//вычисляем время в настоящий момент.

imagejpeg($dest, $user_photo_directory.$date.".jpg");
$photo_all = $user_photo_directory.$date.".jpg";//заносим в переменную путь до картнки.
$delfull = $user_photo_directory.$filename;
}
$result2 = mysql_query("INSERT INTO photo_name (nadp,photo_all) VALUES ('$nadp','$photo_all')");
}
else
{
echo "Расширение закачиваемых файлов Должно быть JPG, GIF, PNG! Повторите попытку.<br>";
exit();
}


Не заносится путь к картинке в бд, а следовательно и не выводится, в чем проблема?



Спустя 12 минут, 2 секунды (12.09.2010 - 14:48) Lenarfate написал(а):
проверять расширение регуляркой не есть тру.

Спустя 1 минута, 15 секунд (12.09.2010 - 14:49) Onehp написал(а):
Lenarfate
Это и мешает правильной работе? Тогда как проверять?

Спустя 2 минуты, 33 секунды (12.09.2010 - 14:52) Lenarfate написал(а):
тебе я уже когда-то давал ссыль на то, как надо загружать файлы. а ты все равно все по-своему

Спустя 2 минуты, 50 секунд (12.09.2010 - 14:55) Onehp написал(а):

Спустя 40 секунд (12.09.2010 - 14:55) Lenarfate написал(а):

Спустя 7 минут, 22 секунды (12.09.2010 - 15:03) Onehp написал(а):
А может в php.ini нужно поправить?

Спустя 3 минуты, 6 секунд (12.09.2010 - 15:06) Lenarfate написал(а):
чего ты собрался там править smile.gif

Спустя 1 минута, 17 секунд (12.09.2010 - 15:07) Onehp написал(а):
Цитата
Обработка multipart-форм

Прежде, чем приступить к написанию скрипта обработки multipart-формы, нужно отредактировать файл конфигурации php.ini, чтобы разрешить загрузку файлов на сервер.

Конфигурационный файл PHP php.ini имеет три параметра, связанные с загрузкой файлов на сервер:

    * file_uploads=On - разрешает загрузку файлов на сервер по протоколу HTTP;
    * upoad_tmp_dir=/tmp - устанавливает каталог для временного хранения загруженных файлов;
    * upload_max_filesize=2M - устанавливает максимальный объем загружаемых файлов.

Спустя 2 минуты, 53 секунды (12.09.2010 - 15:10) Lenarfate написал(а):
ну это все и так стоит по умолчанию.

Спустя 26 минут, 12 секунд (12.09.2010 - 15:36) Onehp написал(а):

<?php
include '../bd.php';
echo "<form enctype='multipart/form-data' action='photo_add.php' method=post
<input type='file' name='zak'><br><br>
<i>Подпись под фотоrрафией</i><br>
<input type='text' name='text' size=50><br><br>
<input type='submit' name='otpr' vаluе='Отправить'>
</form>"
;
include "mini_img.php";

if ($_POST['otpr'] == true)
{
$zak = $_POST['zak'];
//в переменной $zak сохраняем путь к закачиваемому файлу, указанному в форме в поле с именем пame = zak
$file = $_FILES['zak']['name'];
//переменной $file присваиваем имя закачиваемoгo файла.
$size = $_FILES['zak']['size'];
//переменной $size присваиваем размер закачиваемoгo файла в байтах
$nadp = $_POST['text'];
//переменной $nadp присваиваем содержимое текстового поля
$nadp = stripslashes($nadp);
$nadp = htmlspecialchars($nadp);

if (!empty($_POST['fupload'])) //проверяем, отправил ли пользователь изображение
{
$fupload=$_POST['fupload']; $fupload = trim($fupload);
if ($fupload =='' or empty($fupload))
{
unset($fupload);// если переменная $fupload пуста, то удаляем ее
}
}

$user_photo_directory = './photo/';//папка, куда будет загружаться начальная картинка и ее сжатая копия
if(preg_match('/[.](JPG)|(jpg)|(gif)|(GIF)|(png)|(PNG)|(jpeg)|(JPEG)$/',$_FILES['fupload']['name']))//проверка формата исходного изображения
{
$filename = $_FILES['fupload']['name'];
$source = $_FILES['fupload']['tmp_name'];
$target = $user_photo_directory . $filename;
move_uploaded_file($source, $target);//загрузка оригинала в папку $user_photo_directory
if(preg_match('/[.](GIF)|(gif)$/', $filename))
{
$im = imagecreatefromgif($user_photo_directory.$filename);
//если оригинал был в формате gif, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
if(preg_match('/[.](PNG)|(png)$/', $filename))
{
$im = imagecreatefrompng($user_photo_directory.$filename);
//если оригинал был в формате png, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename))
//если оригинал был в формате jpg, то создаем изображение в этом же формате. Необходимо для последующего сжатия
{
$im = imagecreatefromjpeg($user_photo_directory.$filename);
}
$date=time();//вычисляем время в настоящий момент.
imagejpeg($user_photo_directory.$date.".jpg");
$photo_all = $user_photo_directory.$date.".jpg";//заносим в переменную путь до картнки
$delfull = $user_photo_directory.$filename;
}
$result2 = mysql_query("INSERT INTO photo_name (nadp,photo_all) VALUES ('$nadp','$photo_all')");
}
else
{
echo "Расширение закачиваемых файлов Должно быть JPG, GIF, PNG! Повторите попытку.<br>";
exit();
}

sad.gif ...

Спустя 8 минут, 43 секунды (12.09.2010 - 15:45) Lenarfate написал(а):
Цитата
$zak = $_POST['zak'];

она не может быть в ПОСТ. она хранится в ФАЙЛ.


Цитата
if (!empty($_POST['fupload'])) //проверяем, отправил ли пользователь изображение
{
$fupload=$_POST['fupload']; $fupload = trim($fupload);
if ($fupload =='' or empty($fupload))
{
unset($fupload);// если переменная $fupload пуста, то удаляем ее
}
}

в коде вообще не вижу никакой отправляемой постом fupload

Цитата
$user_photo_directory = './photo/';

пути пишут от корня.

Цитата
if(preg_match('/[.](JPG)|(jpg)|(gif)|(GIF)|(png)|(PNG)|(jpeg)|(JPEG)$/',$_FILES['fupload']['name']))

лучше расширение узнавать так pathinfo($_FILES['otpr']['name'], PATHINFO_EXTENSION);

и далее расширение можно узнать обычной функцией basename
string basename ( string path [, string suffix] )

Эта функция вернет имя файла, чей путь был передан в качестве параметра. Если имя файла оканчивается на suffix, он также будет отброшен.

На платформах Windows в качестве разделителей имен директорий используются оба слэша (прямой / и обратный \). В других операционных системах разделителем служит прямой слэш (/).

Пример 1. Пример использования функции basename()
<?php
$path="/home/httpd/html/index.php";
$file=basename($path);// $file содержит "index.php"
$file=basename($path,".php");// $file содержит "index"
?>


Цитата
$result2 = mysql_query("INSERT INTO photo_name (nadp,photo_all) VALUES ('$nadp','$photo_all')");

не нужно здесь запрос в переменную пихать.

вот так по мелочи

Спустя 6 минут, 16 секунд (12.09.2010 - 15:51) Lenarfate написал(а):

Спустя 1 час, 24 минуты, 18 секунд (12.09.2010 - 17:15) Onehp написал(а):
<?php include '../bd.php';

/**
* Function of uploaded of a file
* Функция загрузки файла (аплоадер)
*
@param int $max_file_size максимальный размер файла в килобайтах
*
@param array $valid_extensions массив допустимых расширений
*
@param string $upload_dir директория загрузки
*
@return array сообщение о ходе выполнения
*
*
@author IT studio IRBIS-team (www.irbis-team.com)
*
@copyright © 2009 IRBIS-team
*/

function uploadHandle($max_file_size = 2048, $valid_extensions = array(), $upload_dir = './')
{

$error = null;
$info = null;
$max_file_size *= 10000;

if ($_FILES['userfile']['error'] === UPLOAD_ERR_OK)
{
// проверяем расширение файла
$file_extension = pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION);
if (in_array($file_extension, $valid_extensions))
{
// проверяем размер файла
if ($_FILES['userfile']['size'] < $max_file_size)
{
$destination = $upload_dir .'/' . $_FILES['userfile']['name'];

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $destination))
$info = 'Файл успешно загружен';
else
$error = 'Не удалось загрузить файл';
}
else
$error = 'Размер файла больше допустимого';
}
else
$error = 'У файла недопустимое расширение';
}
else
{
// массив ошибок
$error_values = array(

UPLOAD_ERR_INI_SIZE => 'Размер файла больше разрешенного директивой upload_max_filesize в php.ini',
UPLOAD_ERR_FORM_SIZE => 'Размер файла превышает указанное значение в MAX_FILE_SIZE',
UPLOAD_ERR_PARTIAL => 'Файл был загружен только частично',
UPLOAD_ERR_NO_FILE => 'Не был выбран файл для загрузки',
UPLOAD_ERR_NO_TMP_DIR => 'Не найдена папка для временных файлов',
UPLOAD_ERR_CANT_WRITE => 'Ошибка записи файла на диск'

);

$error_code = $_FILES['userfile']['error'];

if (!empty($error_values[$error_code]))
$error = $error_values[$error_code];
else
$error = 'Случилось что-то непонятное';
}

return array('info' => $info, 'error' => $error);
}

/////////////////////////////////////////////////////////////////////
$extensions = array('jpg', 'jpeg', 'png', 'gif');
$upload_dir = 'images';
$desc = $upload_dir .'/' . $_FILES['userfile']['name'];

// Запускаем функцию
if(!empty($_POST['upload_submit']))
{
$message = uploadHandle(200, $extensions, $upload_dir);

// Выводим сообщение
echo $message['error'] ? $message['error'] : $message['info'];
}
$result = mysql_query ("INSERT INTO photo_name (photo_all) VALUES ('$desc')");
?>
<form action="" method="post" enctype="multipart/form-data">
<
input type="file" name="userfile" />
<
input type="submit" value="Закачать" name="upload_submit" />
</
form>
<?php
$result2 = mysql_query("SELECT photo_all FROM photo_name");
$myrow2 = mysql_fetch_assoc($result2);

echo '<img class="mini" align="left" src='.$myrow2['photo_all'].'>';


Вот сделал так(по тому что ты мне дал почитать) в итоге все вроде ок (то есть в базу идёт место нахождения файла(картинки)), только как вывести их? biggrin.gif

Спустя 38 минут, 41 секунда (12.09.2010 - 17:54) Lenarfate написал(а):
в цикле выводишь. какие проблемы

Спустя 17 минут, 38 секунд (12.09.2010 - 18:12) Onehp написал(а):
Lenarfate Спасибо, тупил, догнал smile.gif только фиг знает что такое

<?php include '../bd.php';

/**
* Function of uploaded of a file
* Функция загрузки файла (аплоадер)
*
@param int $max_file_size максимальный размер файла в килобайтах
*
@param array $valid_extensions массив допустимых расширений
*
@param string $upload_dir директория загрузки
*
@return array сообщение о ходе выполнения
*
*
@author IT studio IRBIS-team (www.irbis-team.com)
*
@copyright © 2009 IRBIS-team
*/

function uploadHandle($max_file_size = 2048, $valid_extensions = array(), $upload_dir = './')
{

$error = null;
$info = null;
$max_file_size *= 10000;

if ($_FILES['userfile']['error'] === UPLOAD_ERR_OK)
{
// проверяем расширение файла
$file_extension = pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION);
if (in_array($file_extension, $valid_extensions))
{
// проверяем размер файла
if ($_FILES['userfile']['size'] < $max_file_size)
{
$destination = $upload_dir .'/' . $_FILES['userfile']['name'];

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $destination))
$info = 'Файл успешно загружен';
else
$error = 'Не удалось загрузить файл';
}
else
$error = 'Размер файла больше допустимого';
}
else
$error = 'У файла недопустимое расширение';
}
else
{
// массив ошибок
$error_values = array(

UPLOAD_ERR_INI_SIZE => 'Размер файла больше разрешенного директивой upload_max_filesize в php.ini',
UPLOAD_ERR_FORM_SIZE => 'Размер файла превышает указанное значение в MAX_FILE_SIZE',
UPLOAD_ERR_PARTIAL => 'Файл был загружен только частично',
UPLOAD_ERR_NO_FILE => 'Не был выбран файл для загрузки',
UPLOAD_ERR_NO_TMP_DIR => 'Не найдена папка для временных файлов',
UPLOAD_ERR_CANT_WRITE => 'Ошибка записи файла на диск'

);

$error_code = $_FILES['userfile']['error'];

if (!empty($error_values[$error_code]))
$error = $error_values[$error_code];
else
$error = 'Случилось что-то непонятное';
}

return array('info' => $info, 'error' => $error);
}

/////////////////////////////////////////////////////////////////////
$extensions = array('jpg', 'jpeg', 'png', 'gif');
$upload_dir = 'images';
$desc = $upload_dir .'/' . $_FILES['userfile']['name'];

// Запускаем функцию
if(!empty($_POST['upload_submit']))
{
$message = uploadHandle(200, $extensions, $upload_dir);

// Выводим сообщение
echo $message['error'] ? $message['error'] : $message['info'];
?>
<form action="" method="post" enctype="multipart/form-data" />
Описание:<br>
<
textarea name="opis" cols="16" rows="5"></textarea><br />
<
input type="file" name="userfile" />
<
input type="submit" value="Закачать" name="upload_submit" />
</
form>
<?php
$nadp = $_POST['opis'];
$nadp = stripslashes($nadp);
$nadp = htmlspecialchars($nadp);

$result = mysql_query ("INSERT INTO photo_name (photo_all,nadp) VALUES ('$desc','$nadp')");
if ($result=='TRUE')
{
exit("<html><head><meta http-equiv='Refresh' content='2; URL=profile.php?id=".$id."'></head><body></body></html>");
}



Parse error: syntax error, unexpected $end in O:\home\localhost\www\hip-hop\gal\file_upload.php on line 96
Что такое?

Спустя 1 минута, 4 секунды (12.09.2010 - 18:13) Lenarfate написал(а):
?> поставь в конце

Спустя 1 минута, 39 секунд (12.09.2010 - 18:14) Onehp написал(а):
Lenarfate
Parse error: syntax error, unexpected $end in O:\home\localhost\www\hip-hop\gal\file_upload.php on line 97

Так а что Вы твердите что не нужно ставить ?> в конце скрипта, если останутся пустые строки туда легко можно вирус написать и т.д. wink.gif

Спустя 36 секунд (12.09.2010 - 18:15) Lenarfate написал(а):
Цитата
if ($result=='TRUE')

true - это булев тип.НИКОГДА не помещай в кавычки. не делай из него строку

Спустя 1 минута, 29 секунд (12.09.2010 - 18:17) Onehp написал(а):
Lenarfate, не понял blink.gif

Спустя 10 секунд (12.09.2010 - 18:17) Lenarfate написал(а):
Цитата
Так а что Вы твердите что не нужно ставить ?> в конце скрипта, если останутся пустые строки туда легко можно вирус написать и т.д.

не внимательно читаешь. если php используется в перемешку с html, завершающий тег обязателен.

а по ошибке, посмотри внимательно, где то забыл скобку или точку с запятой

Спустя 40 секунд (12.09.2010 - 18:17) Lenarfate написал(а):
Цитата
не понял

Спустя 1 минута, 5 секунд (12.09.2010 - 18:18) Onehp написал(а):
Lenarfate Ааа понятно smile.gif

Блин точно забыл } wink.gif

Спустя 13 секунд (12.09.2010 - 18:19) Lenarfate написал(а):
Цитата
// Запускаем функцию
if(!empty($_POST['upload_submit']))
{
$message = uploadHandle(200, $extensions, $upload_dir);

// Выводим сообщение
echo $message['error'] ? $message['error'] : $message['info'];
?>

вот тут и забыл ты скобку поставить
Быстрый ответ:

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