Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Почему не загружаются файлы в БД?
 
 автор: lightning.say   (19.06.2011 в 07:29)   письмо автору
 
 

использую скрипт (книга PHP народные советы):

<form enctype='multipart/form-data' method=post>
<input type="file" name="mp3"><br>
<input type=submit value='Загрузить'>
</form>
<?php
  
// Устанавливаем соединение с базой данных
  
require_once("config.php");

  
// Обработчик HTML-формы
  
if(!empty($_FILES))
  {
    
// Проверяем, является ли переданный файл MP3-файлом
    
if($_FILES['mp3']['type'] == 'audio/mpeg')
    {
      
// Читаем содержимое файла
      
$content file_get_contents($_FILES['mp3']['tmp_name']);
      
// Уничтожаем файл во временном каталоге
      
unlink($_FILES['mp3']['tmp_name']);

      
// Экранируем спецсимволы в бинарном содержимом файла
      
$content mysql_escape_string($content);

      
// Формируем запрос на добавление файла в таблицу
      
$query "INSERT INTO mp3 VALUES
                (NULL, '"
.$_FILES['mp3']['name']."', '$content')";
      if(
mysql_query($query))
      {
        
// Осуществляем автоматическую перезагрузку страницы
        // для очистки POST-данных
        
echo "<HTML><HEAD>
         <META HTTP-EQUIV='Refresh' CONTENT='0; URL=
$_SERVER[PHP_SELF]'>
             </HEAD></HTML>"
;
      } else exit(
mysql_error());
    }
  }

  
// Выводим список файлов
  
$query "SELECT * FROM mp3";
  
$mp mysql_query($query);
  if(!
$mp) exit(mysql_error());
  
// Если имеется хотя бы одна запись,
  // выводим ее
  
if(mysql_num_rows($mp) > 0)
  {
    while(
$mp3 mysql_fetch_array($mp))
    {
      echo 
"<a href=get.php?id_mp3=$mp3[id_mp3]>$mp3[name]</a><br>";
    }
  }
?>


создал таблицу:

CREATE TABLE `mp3` (
`id_mp3` int(11) NOT NULL auto_increment,
`name` tinytext NOT NULL,
`content` longblob NOT NULL,
PRIMARY KEY (`id_mp3`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 ROW_FORMAT=DYNAMIC

указываю фаил, жму загрузить.. никакой реакции, и в базе данных не появляется фаил

по 8м выставил значения post_max_size и upload_max_size
загружаемый файл mp3 около 5м

  Ответить  
 
 автор: cheops   (19.06.2011 в 10:54)   письмо автору
 
   для: lightning.say   (19.06.2011 в 07:29)
 

Преобразуйте скрипт таким образом, чтобы он выводил сообщение об ошибке, если файл не загружен. Что-нибудь выводится?
<?php
  
...
  if(!empty(
$_FILES))
  {
    ...
  }
  else
  {
     exit(
"Файл не загружен на сервер");
  }
  ...
?>

  Ответить  
 
 автор: lightning.say   (19.06.2011 в 11:30)   письмо автору
 
   для: cheops   (19.06.2011 в 10:54)
 

выводится сразу при загрузке скрипта
"файл не загружен на сервер"
Потом когда нажимаю кнопку "MySQL server has gone away"... ушел от меня сервер

  Ответить  
 
 автор: cheops   (19.06.2011 в 13:36)   письмо автору
 
   для: lightning.say   (19.06.2011 в 11:30)
 

>Потом когда нажимаю кнопку "MySQL server has gone away"... ушел от меня сервер
А можно подробнее об сообщении об ошибке?

Какой размер файла загружаете?

  Ответить  
 
 автор: lightning.say   (19.06.2011 в 13:41)   письмо автору
25 Кб
 
   для: cheops   (19.06.2011 в 13:36)
 

1. так это всё "MySQL server has gone away" больше ничего нет
2. 5, 36 МБ

  Ответить  
 
 автор: cheops   (19.06.2011 в 16:21)   письмо автору
 
   для: lightning.say   (19.06.2011 в 13:41)
 

Установите в my.ini значение директивы max_allowed_packet превышающий этот размер и перезагрузите сервер. max_allowed_packet задает максимальный размер SQL-запроса, который может быть принят от клиента.

  Ответить  
 
 автор: lightning.say   (19.06.2011 в 16:37)   письмо автору
45.2 Кб
 
   для: cheops   (19.06.2011 в 16:21)
 

у меня почему-то вообще этой директивы нет в php.ini, прописал самостоятельно max_allowed_packet = 8M, ничего не изменилось...

  Ответить  
 
 автор: cheops   (19.06.2011 в 16:41)   письмо автору
 
   для: lightning.say   (19.06.2011 в 16:37)
 

А сервер какой версии используете?

PS Вообще когда возникает "MySQL server has gone away" - это значит сервер от вас отрубился, так как возникла какая-то серьезная ошибка. Бороться с ней, как правило, можно только выбором другой версии.

  Ответить  
 
 автор: lightning.say   (20.06.2011 в 01:08)   письмо автору
 
   для: cheops   (19.06.2011 в 16:41)
 

Маленькие файлы mp3 загружает, это на большие (3 Мб) он так реагирует почему-то, я хотел песню загрузить, но он не отрубается ведь совсем, другие скрипты продолжают выполняться.

Apache/2.0.63 (Win32) PHP/5.2.6

  Ответить  
 
 автор: lightning.say   (20.06.2011 в 01:27)   письмо автору
 
   для: cheops   (19.06.2011 в 16:41)
 

вычислил, больше 1 Мб файлы не загружаются, где еще может стоять ограничитель?

  Ответить  
 
 автор: cheops   (20.06.2011 в 10:20)   письмо автору
 
   для: lightning.say   (19.06.2011 в 16:37)
 

>у меня почему-то вообще этой директивы нет в php.ini, прописал самостоятельно
>max_allowed_packet = 8M, ничего не изменилось...
Стоп, это не в php.ini нужно писать, а в my.ini, скорее всего у вас эта директива до сих пор 1Мб

  Ответить  
 
 автор: lightning.say   (20.06.2011 в 11:34)   письмо автору
9 Кб
 
   для: cheops   (20.06.2011 в 10:20)
 

там тож ее не нашел, добавил в конец - не помогло

  Ответить  
 
 автор: cheops   (20.06.2011 в 11:40)   письмо автору
 
   для: lightning.say   (20.06.2011 в 11:34)
 

Сервер перезагружали?

  Ответить  
 
 автор: lightning.say   (20.06.2011 в 12:05)   письмо автору
 
   для: cheops   (20.06.2011 в 11:40)
 

да

  Ответить  
 
 автор: lightning.say   (20.06.2011 в 11:34)   письмо автору
 
   для: cheops   (20.06.2011 в 10:20)
 

.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования