Неправильно загружается mp3 файл php

308
26 ноября 2016, 20:12

Здравствуйте, пытаюсь сделать загрузку музыки на сервер, путём POST запроса.

Файл загружается, но при попытке его воспроизвести, музыка воспроизводится некорректно, а именно длится вместо 7 минут 20 секунд и идёт не с начала. Ошибка сохраняется, как я заметил, для файлов размеров > 8МБ, для файлов меньших размеров, всё работает.

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

Собственно, php код:

if ($_SERVER['REQUEST_METHOD'] == 'POST' && $gUser)
{
    $name = $_POST['name'];
    $artist = $_POST['artist'];
    $result = mysqli_query($link, "INSERT INTO uploaded_music (author_uid, name, artist) VALUES ('$gUser[uid]', '$name', '$artist')");
    $id = 'music'.(mysqli_insert_id($link)).'.mp3';
    if ($result)
    {
        @copy($_FILES['music']['tmp_name'], $path.$id);
        header ('location: /view_music.php');
    }
}
Answer 1

По умолчанию размер пост запроса post_max_size 8мб ;)

Похоже что проблемы с выделенной памятью для PHP.

Вкратце (php.ini)

memory_limit > post_max_size > upload_max_filesize

memory_limit Достаточно что бы правильно читать мп3. Если файл 8мб памяти для пхп нужно гораздо больше!

Так же

  1. copy -> move_uploaded_file http://php.net/manual/en/function.move-uploaded-file.php

  2. http://php.net/manual/ru/features.file-upload.common-pitfalls.php

READ ALSO
Избавиться от повторного вывода поля MySQL

Избавиться от повторного вывода поля MySQL

ЗдравствуйтеСоздал БД, создал запрос, все корректно за исключением вывода

217
Название связного поля в MySQL [закрыто]

Название связного поля в MySQL [закрыто]

ЗдравствуйтеСкажите пожалуйста корректна ли будет строка

221
Monit: ubuntu проверка соединения mysql

Monit: ubuntu проверка соединения mysql

Нашел в интернете "скрипт" для проверки статуса сервиса mysql + проверка соединенияНо по какой то причине monit выдает статус "Connection failed"

234
Соединение нескольких полей

Соединение нескольких полей

ЗдравствуйтеНужна помощь в создании запроса

275