Проблемы с потоковым mp3 с использованием Django - PullRequest
1 голос
/ 23 февраля 2012

Я пытаюсь понять, как транслировать mp3-файлы, используя django.Я использовал некоторый код из http://djangosnippets.org/snippets/365/, чтобы помочь мне с этим.По какой-то причине приведенный ниже код дает мне файл меньшего размера, чем фактический файл, хранящийся на сервере.Размер корректно отображается в окне загрузки, но фактический файл оказывается намного меньше.Я попытался отправить текстовые файлы, используя приведенный ниже код, и, кажется, работает нормально.Я не могу понять, что не так.

def play_song(request, id):
    song = Song.objects.get(pk=id)
    # song is an object which has a FileField name file
    filepath = os.path.join(MP3_STORAGE, song.file.name).replace('\\', '/')
    wrapper = FileWrapper(file(filepath))
    response = HttpResponse(wrapper, content_type='audio/mpeg')
    response['Content-Length'] = os.path.getsize(filepath.replace('/', '\\'))
    response['Content-Disposition'] = 'attachment; filename=%s' % song.file.name
    return response

1 Ответ

2 голосов
/ 23 февраля 2012

Читали ли вы комментарии к http://djangosnippets.org/snippets/365/? Попробуйте:

Для людей в Windows вам нужно указать режим чтения двоичного файла для всего, кроме текстового файла:

wrapper = FileWrapper (файл (имя файла), "rb")

или

Получил эту работу с несколькими настройками:

wrapper = FileWrapper (open (имя файла, 'rb'))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...