|
|
|
| Происходит UPLOAD файла, меня интересует в частности картинки, при просмотре свойства картинки показывается адрес где она лежит...
как сокрыть его месторасположение от пользователей? | |
|
|
|
|
|
|
|
для: chexov
(08.04.2008 в 06:18)
| | Сделай отдачу картинки через php скрипт. Тока понадобится база с названиями картинок, или путями куда они загрузились. И тогда адрес твоей картинки будет не такой: http://www.somesite.ru/images/images.gif а допустим http://www.somesite.ru/image.php?id=10 | |
|
|
|
|
|
|
|
для: CassIO
(08.04.2008 в 06:22)
| | не понял как это осуществить?
название картинок записывается в БД, дальше что? | |
|
|
|
|
|
|
|
для: chexov
(08.04.2008 в 06:35)
| | Смотри...допустим я выбрал картинку для загрузки ее на сервер...она загрузилась допустим в папку uploads/users/someimage.gif или jpeg
Название файла записалось в базу данных.
Далее мы пишем код:
<?
$id = $_REQUEST['id'];
if (!empty($id)) {
$sql = "SELECT * FROM `images` WHERE `id` = '$id'";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) == 0) {
echo "Ошибка! Изображение не существует!";
} else {
$data = mysql_fetch_array($result);
$link = "uploads/".$data['file_name'];
if (preg_match("gif", $data['file_name']) {
$img = imagecreatefromgif($link);
} elseif ((preg_match("jpg", $data['file_name'])) OR (preg_match("jpeg", $data['file_name']))) {
$img = imagecreatefromjpeg($link);
}
}
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
} else {
echo "Вы не выбрали изображение";
}
?>
|
Самый простой пример отдачи картинки через PHP скрипт. А там можно его переделывать как хочешь. накладывать водяные знаки, тексты, перекрашивать и пр. | |
|
|
|
|
|
|
|
для: CassIO
(08.04.2008 в 06:53)
| | сейчас попробую, спасибо | |
|
|
|
|
|
|
|
для: chexov
(08.04.2008 в 07:03)
| | ваш код вообще не работает
я сделал так:
<?
$_GET['pic']// номер картинки передаваемый из другого файла
$result = mysql_query ("SELECT `image".$_GET['pic']."` FROM `table`");
if (mysql_num_rows ($result) == '0')
{
echo "Ошибка! Изображение не существует!";
}
else
{
$data = mysql_fetch_array($result);
$ext = strtolower(strrchr($data['image'.$_GET['pic'].''], "."));
$links = "upload/".$data['image'.$_GET['pic'].''];
if (in_array($ext, array(".jpg", ".jpeg")) )
{
$img = imagecreatefromjpeg($links);
header("Content-type: image/jpeg");
imagejpeg($img);
imagedestroy($img);
}
elseif ($ext === ".gif")
{
$img = imagecreatefromgif($links);
header("Content-type: image/gif");
imagegif($img);
imagedestroy($img);
}
}
}
else
{
echo "Вы не выбрали изображение";
}
?>
|
выводит пустой рисунок: смотрю свойства расширение 0х0 но вес файла верный, что не так? | |
|
|
|
|
|
|
|
для: chexov
(08.04.2008 в 08:41)
| | Что за извращения с созданием картинки?
Всё должно свестись к простым дейсвиям:
1) Знать номер картинки
2) Соединиться с базой и в зависимости от номера, взять путь до картинки, который заранее записали в бд.
Если у введеного номера есть запись в бд, то картинка выводится, если нет такой записи, то запретить вывод. | |
|
|
|
|
|
|
|
для: Diplex
(08.04.2008 в 08:59)
| | у меня не записывается путь в БД, а записывается только название файла, который лежит в папке uploads(в данном случае) | |
|
|
|
|
|
|
|
для: chexov
(08.04.2008 в 09:00)
| | Тогда какое же это скрытие адреса? Если вычислят один адрес, то по аналогии и другие картинки вычислят. Хотя, если нет надобности нормально скрывать картинки, то вообще БД не нужна.
Информацию методом гет передавать в скрипт, а скриптом проверять (скрытую скриптом) дирректорию на наличие такого файла. | |
|
|
|
|
|
|
|
для: Diplex
(08.04.2008 в 09:05)
| | что вы разглогольствуете что да как, я же задал конкретный вопрос: как скрыть место расположения картинки? чтобы картнки показывались, но адрес расположения картинки был поддельный.
Предложите методику, а не критику | |
|
|
|
|
|
|
|
для: chexov
(08.04.2008 в 09:09)
| | Короче ставь LihgtHttpd и там есть такая фитча, все файлообменники на нем работают... | |
|
|
|
|
|
|
|
для: CassIO
(08.04.2008 в 09:15)
| | это не решение:(
<a href='script.php?pic=1'>Картинка1</a>
<a href='script.php?pic=2'>Картинка2</a>
<a href='script.php?pic=3'>Картинка3</a>
|
Нужно чтобы пользователь нажал на ссылку, открылась картинка соответствующая ссылке, но при просмотре юзером ее места нахождения, адрес был не настоящий
Объяснил проблему более подробно | |
|
|
|
|
|
|
|
для: chexov
(08.04.2008 в 09:20)
| | СassIO привел верный код! а твой вообще бред! что за запрос "select `image" .$_GET['pic']."` from table" ???? у тебя что по столбцу на каждую картинку и всего 1 строка в таблице??? взялся портить чужой код, так не говори потом что "ВАШ КОД не работает"!! | |
|
|
|
|
|
|
|
для: mechanic
(08.04.2008 в 09:35)
| | у меня 3 столбца для картинок, в каждую по одной
я тебе говорю значит не работает, возьми и проверь
называются image1, image2, image3
параметр $_GET['pic'] передает номер image<-(1,2,3)
так что все верно | |
|
|
|
|
|
|
|
для: chexov
(08.04.2008 в 09:40)
| | так у тя еще и таблица спроектирована ужасно.. расчитывается, что будет доступно всего 3 картинки?
я даже проверять не стану, я уверен что код рабочий!
вообще-то предполагалось, что таблица будет иметь вид
id, file_name
хотя бы так.. передаешь id (script.php?id=1), а в script.php вставляешь код от CassIO, и все!
а твой код нерабочий хотя бы потому. что ты во второй строке перед комментарием забыл ; поставить
и вообще неясно что там делает одинокое $_GET['pic'] | |
|
|
|
|
|
|
|
для: mechanic
(08.04.2008 в 09:48)
| | не вникай для чего мне это, 3 или 100 файлов сейчас не суть
насчет ; это опечатка, модераторы поправят
$_GET['pic'] не одинаковое!!!!!!!! она варьирует от 1 до 3
какая разница что написал CasslO?? я делаю свой скрипт со своей базой, зачем мне под кого то подстраиваться? у меня вместо file_name - выборка из таблицы | |
|
|
|
|
|
|
|
для: chexov
(08.04.2008 в 06:18)
| | использовать библиотеку работы с графикой GD2? | |
|
|
|
|
|
|
|
для: KPETuH
(08.04.2008 в 09:58)
| | как использовать и где взять? а если на хосте нету ее? | |
|
|
|
|
|
|
|
для: chexov
(08.04.2008 в 09:59)
| | > как использовать и где взять? а если на хосте нету ее?
как использовать тебе рассказали в 4 посте..
если либы нет - обычно пишут хостеру с просьбой установить, либо кнопочка "Установить" есть где то на просторах панели управления хостингом..
если хостер посылает нафиг - лучше найти нормального.. их щас столько, хоть лопатой греби | |
|
|
|
|
|
|
|
для: mechanic
(08.04.2008 в 10:02)
| | а на локале? | |
|
|
|
|
|
|
|
для: chexov
(08.04.2008 в 10:10)
| | <?php
var_dump(extension_loaded('gd'));
?>
если true, значит загружена, если нет - надо править php.ini..
там есть длинный список ";extension=...", вот надо раскомментировать все нужные расширения
не думаю что сам файл либы придется искать, обычно они идут в комплекте, так что остается только поправить php.ini | |
|
|
|
|
|
|
|
для: chexov
(08.04.2008 в 10:10)
| | в PHP.INI раскоментируйте
| |
|
|
|
|
|
|
|
для: mihdan
(08.04.2008 в 10:48)
| | раскоментировано а скрпит все арвно не робит | |
|
|
|
|
|
|
|
для: chexov
(08.04.2008 в 15:23)
| | если ты юзал тот код, который приводил здесь, то как я уже сказал, он выдаст PARSE ERROR, из-за отсутствующей ; после $_GET['pic'] | |
|
|
|
|
|
|
|
для: mechanic
(08.04.2008 в 16:39)
| | да забей ты на это GET. Это опечатка, я хотел написать
<?
//$_GET['pic'] это параметр перадваемый из другого скрипта
?>
|
у меня не работает не знаю почему...картинку не выводит | |
|
|
|
|
|
|
|
для: chexov
(08.04.2008 в 17:28)
| | >использовать библиотеку работы с графикой GD2
А смвсел какой использовать ее. Если нет надобности работать с графикой... только доп. нагрузка на сервер.
проще и быстрей использовать
<?
file_get_contents();
header("content-type: /*MIME-type*/");
file_put_contents();
?>
|
| |
|
|
|
|
|
|
|
для: deman-b
(08.04.2008 в 18:19)
| | как ЭТО решит мою задачу? | |
|
|
|
|
|
|
|
для: chexov
(08.04.2008 в 18:26)
| | Есть идеи? | |
|
|
|
|
|
|
|
для: chexov
(08.04.2008 в 19:59)
| | навтыкай везде отладочных echo'в. поставь в самом начале скрипта
error_reporting(E_ALL);
ini_set('display_errors', 1);
|
и пробуй.. | |
|
|
|
|