ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Загрузка файлов в базу PHP
  #1  
Старый 20.01.2009, 04:52
Аватар для h1vs2
h1vs2
Новичок
Регистрация: 11.01.2009
Сообщений: 25
Провел на форуме:
134322

Репутация: 12
По умолчанию Загрузка файлов в базу PHP

Доброй ночи, пишу курсач - магазин на PHP.
Собственно не получается загрузить картинку в базу.

Вот форма:

PHP код:
<? include ("blocks/db.php"); ?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
<title>Страница добавления фирм</title>
<link href="style.css" rel="stylesheet" type="text/css">

</head>
<body background="img/bg.jpg">
<table width="810" border="0" align="center" class="main_table" background="img/small_bg.png">
<? include("blocks/header.php"); ?>
  <tr>
    <td><table width="100%" border="0" class="sab_table">
      <tr>
       <? include("blocks/left.php"); ?> 
        <td width="482" valign="top" align="left" class="type_td">
     
       $result=mysql_query("SELECT name,id FROM categor");
       $myrow=mysql_fetch_array($result);
       $count=mysql_num_rows($result);
       echo "<h3 align='center'>Добавление фирмы</h3>";

<form name='form1' method='post' action='add_firm.php' enctype='multipart/form-data'>
 <p>Выберите категорию для фирмы<br><select name='cat' size='$count'>";
           <?
         
do
         {
         
printf ("<option value='%s'>%s</option>",$myrow["id"],$myrow["name"]);
}
while (
$myrow=mysql_fetch_array($result));     
echo 
"</select></p>"
         
?>
         <p>
           <label>Введите название фирмы<br>
           
             <input type="text" name="name" id="name">
             </label>
         </p>
         <p>
           <label>Загрузите картинку для фирмы<br>
           <input type="file" name="image">
           </label>
         </p>
        <p align="center">
           <label>
           <input type="submit" name="submit" id="submit" value="Добавить фирму">
           </label>
         </p>
        </form>
       <p>&nbsp;</p>        </td>
      </tr>
    </table></td>
  </tr>
<?  include ("blocks/footer.php");        ?>  
</table>
</body>
</html>
А вот сам обработчик:
PHP код:
<? include ("blocks/db.php"); 
if (isset(
$_POST['name']))       
{
$name $_POST['name']; 

if (
$name == ''
{
unset(
$name);
}  
}
if (isset(
$_POST['cat']))      {$cat $_POST['cat']; if ($cat == '') {unset($cat);}}
if(isset(
$_FILES['image']['name']))
{
$tmpimg=UPLOADEDFILES.$_FILES['image']['name'];
$fp=fopen($tmpimg,"rb");
$image=fread($fp,filesize($tmpimg));
$image=addslashes($image);
fclose($fp);
}
else
{
unset(
$image);
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
<title>Обработчик</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>


<body background="img/bg.jpg">
<table width="810" border="0" align="center" class="main_table" background="img/small_bg.png">
<? include("blocks/header.php"); ?>
  <tr>
    <td><table width="100%" border="0" class="sab_table">
      <tr>
       <? include("blocks/left.php"); ?> 
        <td width="482" valign="top" align="left" class="type_td">
        <?
if (isset($name) && isset($cat))
{
echo 
$image;
$result mysql_query ("INSERT INTO firma (name,cat,image) VALUES ('$name','$cat','$image')");

if (
$result == 'true') {echo "<p>Фирма успешна добавлена</p>";}
else {echo 
"<p>Фирма не добавлена</p>";}
}         
else 

{
echo 
"<p>Вы ввели не всю информацию, поэтому фирма в базу не может быть добалена.</p>";
}
 
?>
</td>
      </tr>
    </table></td>
  </tr>
<!--Подключаем нижний графический элемент-->  
<?  include ("blocks/footer.php"); ?>  
</table>
</body>
</html>
Пробывал на стандарнтое устройсво вывести :
PHP код:
echo implode("",file($_FILES['image']['name'])); 
Тоже пусто.

Подскажите пожалуйста

Последний раз редактировалось h1vs2; 20.01.2009 в 05:45..
 
Ответить с цитированием

  #2  
Старый 20.01.2009, 05:22
Аватар для kolpeex
kolpeex
Новичок
Регистрация: 17.02.2008
Сообщений: 28
Провел на форуме:
68228

Репутация: 39
По умолчанию

Путь к файлу, который был загружен - $_FILES['image']['tmp_name']
 
Ответить с цитированием

  #3  
Старый 20.01.2009, 05:46
Аватар для h1vs2
h1vs2
Новичок
Регистрация: 11.01.2009
Сообщений: 25
Провел на форуме:
134322

Репутация: 12
По умолчанию

Блин, спасибо огромное, туплю ночью
 
Ответить с цитированием

  #4  
Старый 20.01.2009, 10:38
Аватар для groundhog
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

ты хоть картинку в BLOB поля сохраняешь?
 
Ответить с цитированием

  #5  
Старый 20.01.2009, 11:40
Аватар для MuXaJIbI4
MuXaJIbI4
Познающий
Регистрация: 20.11.2008
Сообщений: 68
Провел на форуме:
108674

Репутация: 32
По умолчанию

Сами картинки в базе вообще лучше не хранить а только имя напрмер ее. А какртинку в оотдельной папке.
 
Ответить с цитированием

  #6  
Старый 20.01.2009, 11:41
Аватар для kolpeex
kolpeex
Новичок
Регистрация: 17.02.2008
Сообщений: 28
Провел на форуме:
68228

Репутация: 39
По умолчанию

Ну, почему же? Вполне нормально, так бэкап легче делать. По сути БД тот же файл на диске.
 
Ответить с цитированием

  #7  
Старый 20.01.2009, 12:16
Аватар для Trieg
Trieg
Познающий
Регистрация: 26.10.2007
Сообщений: 83
Провел на форуме:
394231

Репутация: 50
По умолчанию

при таком раскладе выше нагрузка на бд да и общая производительности системы наверно упадет.. хотя я сам подобное не делал (предпочитаю в бд хранить только информацию о файле), так что знаю только по наслышке..
ЗЫ: например будет оч хренова если бд расположена не на том же компе где сам сайт.
 
Ответить с цитированием

  #8  
Старый 20.01.2009, 12:23
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
Сами картинки в базе вообще лучше не хранить а только имя напрмер ее. А какртинку в оотдельной папке.
именно

Цитата:
Ну, почему же? Вполне нормально, так бэкап легче делать. По сути БД тот же файл на диске.
так отдавать же через PHP придется.
 
Ответить с цитированием

  #9  
Старый 20.01.2009, 12:24
Аватар для groundhog
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Trieg всё верно говорит, просто сделаем отступление, что если это скажем аватарка, или картинка в подписи, размер которой не превышает 10Кб, то потери будут не существенны (особенно если кеширование хорошо продумано)... Зато удобство переноса - весьма ощутимое...
 
Ответить с цитированием

  #10  
Старый 20.01.2009, 12:45
Аватар для MuXaJIbI4
MuXaJIbI4
Познающий
Регистрация: 20.11.2008
Сообщений: 68
Провел на форуме:
108674

Репутация: 32
По умолчанию

А ыт что если куда то будешь переносить портал, то обойдешься только базой. Все равно скрипты и все переносить. Потом если у тебя будет не маленькая нагрузка, то лишнии запросы к базе не желательны.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
На PHP, как на "Новые ворота"... Mertvii-Listopad Чужие Статьи 7 18.09.2006 12:42
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ