URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 3631
[ Назад ]

Исходное сообщение
"Подскажите, пожалуйста, как разместить фотографию в Mysql?"

Отправлено Андрей , 10-Окт-05 12:51 
Подскажите, пожалуйста, как разместить фотографию в Mysql?

Содержание

Сообщения в этом обсуждении
"Подскажите, пожалуйста, как разместить фотографию в Mysql?"
Отправлено mephius , 10-Окт-05 13:08 
>Подскажите, пожалуйста, как разместить фотографию в Mysql?

Можно запихнуть ее в blob поле (просто открыв файл картинки, прочитать его и записать содержимое в blob поле таблицы в mysql), но сначала нужно подумать, нужно ли это делать ;)


"Подскажите, пожалуйста, как разместить фотографию в Mysql?"
Отправлено Андрей , 10-Окт-05 15:34 
>>Подскажите, пожалуйста, как разместить фотографию в Mysql?
>
>Можно запихнуть ее в blob поле (просто открыв файл картинки, прочитать его
>и записать содержимое в blob поле таблицы в mysql), но сначала
>нужно подумать, нужно ли это делать ;)


А как? подробнее можно. И какие могут быть проблемы? Может есть альтернатива? Прошу подробнее, а то весь интернет уже перерыл


"Подскажите, пожалуйста, как разместить фотографию в Mysql?"
Отправлено mephius , 10-Окт-05 15:56 
>А как? подробнее можно. И какие могут быть проблемы? Может есть альтернатива?
>Прошу подробнее, а то весь интернет уже перерыл

Вообще, в базу гораздо удобнее хранить ПУТЬ к файлу картинки, а не саму картинку. Я поэтому и написал, что перед тем, как реализовывать хранение бинарных файлов в базе, нужно подумать, реально ли это нужно, и только будучи абсолютно уверенным, реализовывать.

насчет вопроса "как?" давайте сначала определимся, на каком языке делаем.
есди речь идет, например, о php, то код получится примерно таким:

<?
$filename=dirname(__FILE__) . "/picture.jpg";

$fp=@fopen($filename, "r");
if($fp){
    $filecontents=fread($fp, filesize($filename));
    fclose($fp);

    $res=mysql_query("insert into TABLE (imagecontent) values ('".mysql_escape_string($filecontents)."') where 1");
//Поле imagecontent должно быть, естественно, типа BLOB
    if($res) echo "Image copied into database"; else "failed to copy image into database";
}else die("file not found");

?>


ну и показывать его потом соответственно предварительно послав заголовок, что это картинка:

<?
header("Content-Type: image/jpeg");
echo $filecontents; //просто с поток выливаем сожержимое файла
?>

примерно так. Для остальных языков алгоритм абсолютно тот же.


"Подскажите, пожалуйста, как разместить фотографию в Mysql?"
Отправлено Андрей , 10-Окт-05 16:55 
Пишу на php (пытаюсь)
Вот так я вставляю айл на сервер.
Форма
<body>
  <h2><p><b> Форма для загрузки файлов </b></p></h2>
      <form action="upload.php" method="post" enctype="multipart/form-data">
      <input type="file" name="filename"><br>
      <input type="submit" value="Загрузить"><br>
      </form>

</body>

Скрипт формы

<body>
<?php
   if($_FILES["filename"]["size"] > 1024*3*1024)
   {
     echo ("Размер файла превышает три мегабайта");
     exit;
   }
   if(copy($_FILES["filename"]["tmp_name"],
     "c:/temp/".$_FILES["filename"]["name"]))
   {
     echo("Файл успешно загружен <br>");
     echo("Характеристики файла: <br>");
     echo("Имя файла: ");
     echo($_FILES["filename"]["name"]);
     echo("<br>Размер файла: ");
     echo($_FILES["filename"]["size"]);
     echo("<br>Каталог для загрузки: ");
     echo($_FILES["filename"]["tmp_name"]);
     echo("<br>Тип файла: ");
     echo($_FILES["filename"]["type"]);
   } else {
      echo("Ошибка загрузки файла");
   }
  
?>

</body>

И что дальше как переместить ссылку в базу?