|
|
|
| использую скрипт (книга 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м | |
|
|
|
|
|
|
|
для: lightning.say
(19.06.2011 в 07:29)
| | Преобразуйте скрипт таким образом, чтобы он выводил сообщение об ошибке, если файл не загружен. Что-нибудь выводится?
<?php
...
if(!empty($_FILES))
{
...
}
else
{
exit("Файл не загружен на сервер");
}
...
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(19.06.2011 в 10:54)
| | выводится сразу при загрузке скрипта
"файл не загружен на сервер"
Потом когда нажимаю кнопку "MySQL server has gone away"... ушел от меня сервер | |
|
|
|
|
|
|
|
для: lightning.say
(19.06.2011 в 11:30)
| | >Потом когда нажимаю кнопку "MySQL server has gone away"... ушел от меня сервер
А можно подробнее об сообщении об ошибке?
Какой размер файла загружаете? | |
|
|
|
|
 25 Кб |
|
|
для: cheops
(19.06.2011 в 13:36)
| | 1. так это всё "MySQL server has gone away" больше ничего нет
2. 5, 36 МБ | |
|
|
|
|
|
|
|
для: lightning.say
(19.06.2011 в 13:41)
| | Установите в my.ini значение директивы max_allowed_packet превышающий этот размер и перезагрузите сервер. max_allowed_packet задает максимальный размер SQL-запроса, который может быть принят от клиента. | |
|
|
|
|
 45.2 Кб |
|
|
для: cheops
(19.06.2011 в 16:21)
| | у меня почему-то вообще этой директивы нет в php.ini, прописал самостоятельно max_allowed_packet = 8M, ничего не изменилось... | |
|
|
|
|
|
|
|
для: lightning.say
(19.06.2011 в 16:37)
| | А сервер какой версии используете?
PS Вообще когда возникает "MySQL server has gone away" - это значит сервер от вас отрубился, так как возникла какая-то серьезная ошибка. Бороться с ней, как правило, можно только выбором другой версии. | |
|
|
|
|
|
|
|
для: cheops
(19.06.2011 в 16:41)
| | Маленькие файлы mp3 загружает, это на большие (3 Мб) он так реагирует почему-то, я хотел песню загрузить, но он не отрубается ведь совсем, другие скрипты продолжают выполняться.
Apache/2.0.63 (Win32) PHP/5.2.6 | |
|
|
|
|
|
|
|
для: cheops
(19.06.2011 в 16:41)
| | вычислил, больше 1 Мб файлы не загружаются, где еще может стоять ограничитель? | |
|
|
|
|
|
|
|
для: lightning.say
(19.06.2011 в 16:37)
| | >у меня почему-то вообще этой директивы нет в php.ini, прописал самостоятельно
>max_allowed_packet = 8M, ничего не изменилось...
Стоп, это не в php.ini нужно писать, а в my.ini, скорее всего у вас эта директива до сих пор 1Мб | |
|
|
|
|
 9 Кб |
|
|
для: cheops
(20.06.2011 в 10:20)
| | там тож ее не нашел, добавил в конец - не помогло | |
|
|
|
|
|
|
|
для: lightning.say
(20.06.2011 в 11:34)
| | Сервер перезагружали? | |
|
|
|
|
|
|
|
для: cheops
(20.06.2011 в 11:40)
| | да | |
|
|
|
|
|
|
|
для: cheops
(20.06.2011 в 10:20)
| | . | |
|
|
|