[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос по загрузке и хранению изображения в БД
veolancer
Интересует вот что, цель на данный момент: нужно хранить изображения(простые картинки(превьюшки) в формате jpg) не более 1 мб в базе данных и потом их выводить в нужное место на сайте.

Расскажите пожалуйста как можно хранить их в БД и как потом правильно к ним сделать запрос(картинка будет выводиться в цикле while). Где то слышал что поле в БД создавать надо с определённым параметром, который в сою очередь влияет на максимальный размер хранящегося файла.



Спустя 18 минут, 35 секунд (10.01.2012 - 22:37) killer8080 написал(а):
hamado
Цитата (hamado @ 10.01.2012 - 21:19)
Где то слышал что поле в БД создавать надо с определённым параметром,

Поле должно быть LONGBLOB
Но делать этого крайне не рекомендую. Лучше хранить файлы в файловой системе как и положено, а в бд хранить только путь к ним. smile.gif

Спустя 47 минут, 37 секунд (10.01.2012 - 23:25) veolancer написал(а):
ну это я уже делал(хранил путь, а сама картинка в папке files), просто лень каждый раз писать путь+название картинки. В скором будущем буду админку писать, и на сколько я знаю можно будет сделать кномку "обзор" и её значение(то что было выбрано) можно в базу занести через форму(т.к. там не только это будет). У меня вопрос.. Куда будет по умолчанию относиться "обзор", т.е. когда нажал(это на компе/денвер) он показывает диски компа, а как на хостинге он будет это отображать?

Спустя 2 минуты, 38 секунд (10.01.2012 - 23:28) killer8080 написал(а):
Цитата (hamado @ 10.01.2012 - 22:25)
У меня вопрос.. Куда будет по умолчанию относиться "обзор", т.е. когда нажал(это на компе/денвер) он показывает диски компа, а как на хостинге он будет это отображать?

Кнопка обзор - это функция браузера, к серверу никакого отношения не имеет.

Спустя 8 минут, 51 секунда (10.01.2012 - 23:36) veolancer написал(а):
Мда cool.gif Вручную, и опять вручную.. жаль

Спустя 57 секунд (10.01.2012 - 23:37) killer8080 написал(а):
Цитата (hamado @ 10.01.2012 - 22:36)
Вручную, и опять вручную.. жаль

Что вручную? И причем здесь хранение файла в БД? blink.gif

Спустя 17 минут, 25 секунд (10.01.2012 - 23:55) YVSIK написал(а):
Цитата
просто лень каждый раз писать путь+название картинки

ну вот сделаем так, пути если их несколко
возможно сохранить в константах и подставлять селектом , а вот название скинов (картинок) можно тож при добавлении заставить генерировать и подставлять автоматом
ну и вот может вполне получиться, некая не ручная работа smile.gif
что в итоге и путь некто не увидит ведь, видеть будут только слово примененное этому пути а скин на выбор .

Спустя 23 минуты, 15 секунд (11.01.2012 - 00:18) veolancer написал(а):
Цитата (killer8080 @ 10.01.2012 - 20:37)
Цитата (hamado @ 10.01.2012 - 22:36)
Вручную, и опять вручную.. жаль

Что вручную? И причем здесь хранение файла в БД? blink.gif

Имеется ввиду, что на данный момент у меня создано поле в БД, где я храню путь к картинке, которая непосредственно лежит в корне сайта/папка files, хотел я сделать так, чтоб картинка хранилась в самой БД, т.к. ты сказал что не рекомендуется этого делать, то Я и написал Вручную, и опять вручную.., тем самым говоря что придётся дальше продолжать вводить путь и хранить картинки на самом сайте. Ответ ясен?!

Спустя 2 минуты, 33 секунды (11.01.2012 - 00:21) waldicom написал(а):
Не совсем ясно, почему в ручную, если и там и там необходимы действия, которые надо написать всего один раз.
А так присоединяюсь, файлы чаще хранят на файловой системе.

Спустя 14 секунд (11.01.2012 - 00:21) veolancer написал(а):
YVSIK

Не совсем понял, по подробней можно? И желательно с примерами. smile.gif

Спустя 4 минуты, 37 секунд (11.01.2012 - 00:25) veolancer написал(а):
Цитата (waldicom @ 10.01.2012 - 21:21)
Не совсем ясно, почему в ручную, если и там и там необходимы действия, которые надо написать всего один раз.
А так присоединяюсь, файлы чаще хранят на файловой системе.

Смотри

<?php

echo '<img src="./files/'. (int)$row['img'] .'.jpg" width="150" height="230">';

?>

Тобишь в базе я пишу лишь название, а именно делаю их числовыми, 1,2,3... , так же и картинки нумерую чтобы попроще было.
Можно конечно сделать это поле авто_инкремент, то опять же и с этим могут быть проблемы в дальнейшем

Спустя 1 час, 51 минута, 28 секунд (11.01.2012 - 02:17) YVSIK написал(а):
hamadoну вот примерно так в кофиге раз и навсегда присваиваем пути к постоянству (константе)
define("HOME","home");                 // 1 вместо cлова home указываем путь
define("ENTERPRISET","enterpriset"); // 2 ст.по аналогии home
define("AGENCY","http://work.ru/Untitled-6.php"); // 3 ст.пример пути

ну вот теперь при вызове просще подставить эту константу , ну пусть так-
HOME, и она и будет соответствовать пути который указали
останется только придумать как подставлять название , ну тут ты сам уже автоинкрментом
и если путей несколько то складываеш эти названия констант в форму
<select name="">
<option>
HOME</option>
<option>
ENTERPRISET</option>
............
</select>

на выбор и всё? Константам дать вменяемые названия чтоб юзер понял , ну пусть будет видно как название скажем папки
вот что подумал , ну и предложил, вроде так .

Спустя 2 часа, 33 минуты, 21 секунда (11.01.2012 - 04:50) Эли4ка написал(а):
hamado
Это все делается так
1.Устанавливается форма загрузки изображения(там можно поставить какие расширения загружать и тд)
2.При загрузки на сайт изображению присваивается id
3.В конфигурационном файле прописываем путь до директории..
И все,никакой рутинной работы.

Спустя 1 час, 48 минут, 1 секунда (11.01.2012 - 06:38) veolancer написал(а):
А подскажите, как сделать ссылочку сохранить изображение? У меня картинки на сайте, и чтоб не нажимать правой кнопкой и сохранить ихображение ка, заместо этого сделать кнопку-ссылку скачать.

Я тут порылся в инете, статью нашёл и не понял, ниже она

Цитата

Как сделать ссылку "Сохранить" на изображения Picasa.
Эта статья была бы неполной, если бы нельзя было сделать ссылку "Сохранить" на исходное изображение. Это осуществить как оказалось очень просто. URL-адрес картинки из Picasa имеет вид:
http://3.bp.blogspot.com/-G9jR513tUg4/TdTN...50/lestnica.jpg
Изменив его окончание, мы получим URL
http://3.bp.blogspot.com/-G9jR513tUg4/TdTN.../wIk9tY6bAY0/d/
который заключим в конструкцию
<a href="http://3.bp.blogspot.com/-G9jR513tUg4/TdTNzKuIffI/AAAAAAAAB4s/wIk9tY6bAY0/d/">Сохранить</a>
Результат: Сохранить.

Спустя 3 часа, 4 минуты, 18 секунд (11.01.2012 - 09:43) killer8080 написал(а):
Цитата (hamado @ 11.01.2012 - 05:38)
А подскажите, как сделать ссылочку сохранить изображение?

Для этого файл нужно отдавать не прямой ссылкой, а через скрипт, который сформирует соответствующие заголовки

header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Content-transfer-encoding: binary');
header('Content-Type: application/octet-stream');
header('Content-Length: ' . filesize($filename));

readfile($filename);

Спустя 19 минут, 55 секунд (11.01.2012 - 10:02) veolancer написал(а):
killer8080

Ничё не понял, как мне сделать эту ссылку?

Спустя 4 минуты, 31 секунда (11.01.2012 - 10:07) killer8080 написал(а):
Цитата (hamado @ 11.01.2012 - 09:02)
Ничё не понял, как мне сделать эту ссылку?

Как любую другую, типа такого
<a href="/getfile.php?file=pic1.jpg">download</a>

Спустя 7 минут, 54 секунды (11.01.2012 - 10:15) veolancer написал(а):
Дак она открывается в новом окне и СНОВА мне нужно вручную нажать правую кнопку и выбрать "сохранить как", А Мне надо чтобы нажал и тут же вылезло окошко сохранения, тобишь ссылка на оригинал картинки и вела к непостредственно её скачиванию! Понял? или нет

Спустя 2 минуты, 50 секунд (11.01.2012 - 10:18) killer8080 написал(а):
Цитата (hamado @ 11.01.2012 - 09:15)
Понял? или нет

Да я то понял, а ты?
Сначала бы разобрался с тем кодом что я тебе дал, прежде чем выводы делать.

Спустя 17 минут, 13 секунд (11.01.2012 - 10:35) YVSIK написал(а):
hamadoв начале было слово и слово это было copy, работает это так
 if(copy('file1.txt', 'file2.txt'))
echo 'file1.txt удачно скопирован в file2.txt';

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

Спустя 2 минуты, 55 секунд (11.01.2012 - 10:38) killer8080 написал(а):
YVSIK
copy тут ни причем. Нужно просто правильные заголовки формировать, чтоб браузер знал что делать с контентом.

Спустя 1 минута, 10 секунд (11.01.2012 - 10:39) Ramzil_Nixon написал(а):
Грузишь в директорий изображение, а в базу просто сохраняешь ссылку на него

Спустя 25 минут, 20 секунд (11.01.2012 - 11:04) veolancer написал(а):
Короче ладно, забью на это, непонятно кто вообще о чё ту говорит и что отвечает. Попросил элементарно сказать как сделать ссылку "Сохранить изображение как..." на скачивание/сохраниение изображение, чтобы не нажимать пользователю каждый раз правой кнопкой/сохранить изображение, а просто нажать ссылку и откроется окно загрузки.

Спустя 2 минуты, 37 секунд (11.01.2012 - 11:07) killer8080 написал(а):
Цитата (hamado @ 11.01.2012 - 10:04)
Короче ладно, забью на это, непонятно кто вообще о чё ту говорит и что отвечает. Попросил элементарно сказать как сделать ссылку "Сохранить изображение как..." на скачивание/сохраниение изображение, чтобы не нажимать пользователю каждый раз правой кнопкой/сохранить изображение, а просто нажать ссылку и откроется окно загрузки.

Ответ я тебе уже дал, на предыдущей странице. Что не понятно?

Спустя 40 минут, 24 секунды (11.01.2012 - 11:47) veolancer написал(а):
Я его недопонял, можешь по подробней объяснить как мне решить данный вопрос?

Спустя 17 часов, 41 минута, 52 секунды (12.01.2012 - 05:29) veolancer написал(а):
Тема закрыта. Смысла нет продолжать.

Спустя 13 минут, 28 секунд (12.01.2012 - 05:43) inpost написал(а):
hamado
На предыдущей странице ответ был дан. Я решил протестировать у себя, и вуаля, всё работает, единственное надо было инициализировать переменную, ну а это ты и без нашей помощи мог сделать. По клику идёт закачка картинки, а не отображение в браузере. Проверил на FF + CHROME.

Спустя 6 дней, 7 часов, 51 минута, 14 секунд (18.01.2012 - 13:34) veolancer написал(а):
inpost
Скажи что ты использовал? Как это сделал. Я пробовал header подставлять и у меня куча ошибок

Спустя 1 час, 43 минуты, 52 секунды (18.01.2012 - 15:18) inpost написал(а):
Я просто скопировал весь код и вставил в чистый лист! Лишь переменную $file инициализировал первой строчкой из $_GET, и открыл в браузере - закачка файла пошла, а не его открытие.
Ошибки никакой не могло быть, особенно "КУЧИ", если учесть, что там всего 5 строк smile.gif

Спустя 2 часа, 5 минут, 32 секунды (18.01.2012 - 17:23) killer8080 написал(а):
Цитата (hamado @ 18.01.2012 - 12:34)
Я пробовал header подставлять и у меня куча ошибок

Значит был вывод контента до вызова header, или кодировка файла UTF8 with BOM

<?php

if(empty($_GET['file'])){
header('HTTP/1.0 404 Not Found');
die('Error 404 file not found');
}

$allowed_types = array('jpg', 'jpeg', 'gif', 'png'); // расширения файлов разрешенные для скачивания

$file = $_SERVER['DOCUMENT_ROOT'].'/'. basename($_GET['file']); // basename для безопасности, путь пропиши как надо

// если файл несуществует или запрещен для скачивания, формируем 404 ошибку

if(!file_exists($file) || !in_array(strtolower(pathinfo($file, PATHINFO_EXTENSION)), $allowed_types)){
header('HTTP/1.0 404 Not Found');
die('Error 404 file not found');
}

header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Content-transfer-encoding: binary');
header('Content-Type: application/octet-stream');
header('Content-Length: ' . filesize($file));

readfile($file);

надеюсь как ссылку прописать сам догадаешься user posted image

Спустя 1 день, 7 часов, 2 минуты, 47 секунд (20.01.2012 - 00:26) veolancer написал(а):
killer8080

Чуть позже попробую и отпишу, Фэнькс

Спустя 8 часов, 57 минут, 34 секунды (20.01.2012 - 09:24) Эли4ка написал(а):
Цитата
Фэнькс

unsure.gif unsure.gif может thank ?

Спустя 2 дня, 14 часов, 4 минуты, 35 секунд (22.01.2012 - 23:28) veolancer написал(а):
Цитата (Эли4ка @ 20.01.2012 - 06:24)
Цитата
Фэнькс

unsure.gif unsure.gif может thank ?

Остроумно

Спустя 14 минут, 31 секунда (22.01.2012 - 23:43) neadekvat написал(а):
Цитата (hamado @ 23.01.2012 - 00:28)
Остроумно

Остроумно писать английское слово на русском при том, что в русском нет аналога английского звука.
Это вообще тупо, если уж прямо говорить.

Спустя 11 часов, 21 минута, 55 секунд (23.01.2012 - 11:05) Эли4ка написал(а):
neadekvat
прямо в яблочко.. cool.gif

Спустя 14 дней, 5 часов, 14 минут, 51 секунда (7.02.2012 - 16:20) veolancer написал(а):
Цитата (hamado @ 22.01.2012 - 20:28)
в русском нет аналога английского звука.

Умник, laugh.gif "Произношение"

Спустя 1 минута, 23 секунды (7.02.2012 - 16:21) veolancer написал(а):
Цитата (neadekvat @ 22.01.2012 - 20:43)
прямо в яблочко..

Мда? Верь всему что написано biggrin.gif
Быстрый ответ:

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