powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вот как вставить картинку.
15 сообщений из 15, страница 1 из 1
Вот как вставить картинку.
    #32016516
Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Записывать информацию в BLOB весьма заморочно (надо перекодировать чтобы не было апострофов, кавычек, энтеров и нуль-байтов), да и выводить его не легко в веб-страницу (придётся выводить его скриптом, а значи описание mime-типа нужно).

Более простой способ такой:
1. Рисунок закачивается не в базу данных, а в файловую систему сервера, причём ему присваивается уникальное имя (типа img145.jpg, img146.gif)
2. В базу данных записывается только новое имя рисунка.

Преимущества очевидны:
1. База данных каждый раз при обращении к рисунку не загружается (а работает она как-никак медленнее файловой системы)
2. нет проблем с поддержкой mime-типов на сервере

Может возникнуть единственный вопрос - как закачать файл с картинкой на сервер через веб-страницу?
Например так:

В коде вебстраницы пишешь:

<form action="имя скрипта твоего" enctype="multipart/form-data">
Выберите рисунок:<input type=file name=image>
<input type=submit>
</form>


А в коде скрипта для закачки файла (если это Perl) пишешь вот что:

1. В начале скрипта добавь:

use Mysql;
use CGI qw/:standard escapeHTML/;
use CGI::Carp (fatalsToBrowser);
use File::stat;

$q=new CGI;
$name=q->param('image');

2. Непосредственно закачка:

open imFile, ">новое имя файла с полным путём до него на сервере";
binmode imFile;
while ($bytesread=read($name,$buffer,1024)) {print imFile $buffer;}
close(imFile);


Ну, и в таблицу вставить новое имя файла.


Удачи!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Вот как вставить картинку.
    #32285764
azazel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как сделать тоже самое только не на перле а на php?????????????????
...
Рейтинг: 0 / 0
Вот как вставить картинку.
    #32286206
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений писал:Записывать информацию в BLOB весьма заморочно ...\r
Более простой способ такой: \r
1. Рисунок закачивается не в базу данных, а в файловую систему сервера, причём ему присваивается уникальное имя (типа img145.jpg, img146.gif)\r
2. В базу данных записывается только новое имя рисунка.\r
Закачка файлов на сервер средствами пхп
...
Рейтинг: 0 / 0
Вот как вставить картинку.
    #32287075
azazel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это я уже читал, а на практике как это сделать, у меня ничего не получается!!!
...
Рейтинг: 0 / 0
Вот как вставить картинку.
    #32287847
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Постановку задачи в студию - поди всем миром поможем...
...
Рейтинг: 0 / 0
Вот как вставить картинку.
    #32288324
azazel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вобщем мне нужно сделать таблицу в базе данных mysql где будет содержаться текстовая информация и рисунки.
И одна проблема никогда с этим не работал как сделать запись рисунка в базу данных и как ее потом изъять оттуда? Очень много форумов где обсуждалась эта проблема но не доконца....
буду очень благодарен, если вы мне поможете
...
Рейтинг: 0 / 0
Вот как вставить картинку.
    #32288378
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты хочешь непременно хранить картинки в БД?
Это немного сложнее...
Самый простой способ написан выше, первым постом

А принцип такой:

Загружаешь файл на сервер (вернее он сам загрузится из формы)
Считываешь его в переменную (fread, getcontent)
Добавляешь запись в таблицу предварительно экранировав слэши (addslashes)


Получение следующим образом:

Проверяешь на наличие содержимое записи
Если есть, то например вызываешь файл, который будет возвращать картинку
типа
Код: plaintext
1.
2.
3.
if(картинка есть)
{
 <img src= "getpicture.php?id=123 ">
}


в файле getpicture.php формируешь header
Код: plaintext
header( "Content-type: image/jpeg" );

получаешь из БД содержимое поля и выводишь в браузер
Код: plaintext
print  "полученное значение поля из БД" 


Может где ошибся пусть поправят, писал на память
...
Рейтинг: 0 / 0
Вот как вставить картинку.
    #32289432
alex_24
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это все ничего, но представь, что у тебя в каталоге 10.000 - как думаешь, быстро будет читаться из такого каталога?
Нет!
Надо бить этот каталог на штук 500 подкаталогов, если конечно реальный проект, с реальным количеством фоток (сайт знакомств какой нибуть или авто-фотопродажа).
...
Рейтинг: 0 / 0
Вот как вставить картинку.
    #32290073
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/topic/53124\r
вот тут FAQ-решения по PHP
...
Рейтинг: 0 / 0
Вот как вставить картинку.
    #32290075
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_24 писал:Это все ничего, но представь, что у тебя в каталоге 10.000 - как думаешь, быстро будет читаться из такого каталога?
Нет!
Надо бить этот каталог на штук 500 подкаталогов, если конечно реальный проект, с реальным количеством фоток (сайт знакомств какой нибуть или авто-фотопродажа).

как хранить фотки на серваке, если их немеряно ???
...
Рейтинг: 0 / 0
Вот как вставить картинку.
    #32292188
azazel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет я нашел как загрузить файл на серевер, а как записать название файла, который загружается в базу?????
Вот скрипт:
<?
switch($upload) {
default:
include "config.php";
echo "
<html>

<head>
<title>Загрузка</title>
</head>

<body topmargin=\"10\" leftmargin=\"0\" bgcolor=\"#18576F\" link=\"#818EA0\" vlink=\"#5C697A\" alink=\"#818EA0\" text=\"#FFFFFF\" style=\"font-family: Verdana; font-size: 8pt; color: #FFFFFF\">



<div align=\"center\">
<center>
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"400\" id=\"AutoNumber1\">
<tr>
<td bgcolor=\"#5E6A7B\" height=\"25\">
<p align=\"center\"><font size=\"2\"><b>Загрузка файла</b></font></td>
</tr>
<tr>
<td bgcolor=\"#818EA0\"><font size=\"2\">Инструкция для добавления файлов:</font><ul type=\"square\">
<li><font size=\"2\">Расширение файла должно быть следующим <b>";
if (($extensions == "") or ($extensions == " ") or ($ext_count == "0") or ($ext_count == "") or ($limit_ext != "yes") or ($limit_ext == "")) {
echo "любое расширение";
} else {
$ext_count2 = $ext_count+1;
for($counter=0; $counter<$ext_count; $counter++) {
echo "&nbsp; $extensions[$counter]";
}
}
if (($limit_size == "") or ($size_limit != "yes")) {
$limit_size = "any size";
} else {
$limit_size .= " bytes";
}
echo"</b></font></li>
<li><font size=\"2\">Максимальный размер файла $limit_size</font></li>
<li><font size=\"2\">Имя файла не может содержать следующие символы
(/,*,\,и т.д.)</font><BR>
</li>
</ul>
<form method=\"POST\" action=\"$PHP_SELF?upload=doupload\" enctype=\"multipart/form-data\">
<p align=\"center\">
<input type=file name=file size=30 style=\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1\"><br>
<br>
<button name=\"submit\" type=\"submit\" style=\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 4; padding-right: 4; padding-top: 1; padding-bottom: 1\">Upload</button>
</p>
</form>
<p>
</td>
</tr>
</table>
</center>
</div>


</body>

</html>";
break;
case "doupload":
include "config.php";
$endresult = "<font size=\"2\">Файл был загружен</font>";
if ($file_name == "") {
$endresult = "<font size=\"2\">Не выбран файл</font>";
}else{
if(file_exists("$absolute_path/$file_name")) {
$endresult = "<font size=\"2\">Файл уже существует</font>";
} else {
if (($size_limit == "yes") && ($limit_size < $file_size)) {
$endresult = "<font size=\"2\">Файл слишком болшой</font>";
} else {
$ext = strrchr($file_name,'.');
if (($limit_ext == "yes") && (!in_array($ext,$extensions))) {
$endresult = "<font size=\"2\">Файл с неправильным расширением</font>";
}else{
@copy($file, "$absolute_path/$file_name") or $endresult = "<font size=\"2\">Couldn't Copy File To Server</font>";
}
}
}
}
echo "
<html>

<head>
<title>Upload</title>
</head>

<body topmargin=\"10\" leftmargin=\"0\" bgcolor=\"#18576F\" link=\"#818EA0\" vlink=\"#5C697A\" alink=\"#818EA0\" text=\"#FFFFFF\" style=\"font-family: Verdana; font-size: 8pt; color: #FFFFFF\">



<div align=\"center\">
<center>
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"400\" id=\"AutoNumber1\">
<tr>
<td bgcolor=\"#5E6A7B\" height=\"25\">
<p align=\"center\"><font size=\"2\"><b>Загрузка файла</b></font></td>
</tr>
<tr>
<td bgcolor=\"#818EA0\">
<center> $endresult </center>
</td>
</tr>
</table>
</center>
</div>


</body>

</html>";
break;
}
?>


config.php:

<?
$absolute_path = "uploads/";
$size_limit = "no";
$limit_size = "20000000";
$limit_ext = "no";
$ext_count = "4";
$extensions = array(".gif", ".jpg", ".jpeg", ".png");
?>
...
Рейтинг: 0 / 0
Вот как вставить картинку.
    #32292943
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот выдал военную тайну...
Свой скрипт опубликовал, теперь тебя взломают :-)))
Зачем столько много пишешь?
Все равно никто читать вдумываясь не будет...

И выделяй код, хоть раскрасится немного


Код: plaintext
$_FILES['имя_поля_формы']['name']



И вообще наверное пора перенести фопрос в другой форум, анпример в ПХП\ПЕРЛ? Как думаешь?
...
Рейтинг: 0 / 0
Вот как вставить картинку.
    #32293568
azazel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за совет в следующий раз буду осторожнее!!!
Если там помогут, можно и перенести.....
...
Рейтинг: 0 / 0
Вот как вставить картинку.
    #32439395
EcoloRa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа. А как сделать то же самое на Java?
Ответы можно постить мне в мыло
real@krw.ru
...
Рейтинг: 0 / 0
Вот как вставить картинку.
    #32440399
AlexKab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To Евгений
У меня уже 2 года крутится задача, где информация ( документация
в электронном виде, а это и картинки и фото и многое другое) хранится
в поле MEDIUMTEXT. Скорость приличная. Вопросы хранения, создания копий
и т.д. решаю средствами MySQL. Также вопросы секретности и разграничения доступа к информации.Так что я с вами не согласен.Обьем таблицы с картинками ~400 Mb, документов > 15000
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вот как вставить картинку.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]