PermissionError at / download / - PullRequest
       2

PermissionError at / download /

0 голосов
/ 27 марта 2019

, когда я пытаюсь загрузить файл, он говорит PermissionError в / download /

views.py

def download(request, path):
   file_path = os.path.join(settings.MEDIA_ROOT, path)
   if os.path.exists(file_path):
        with open(file_path, 'rb') as f:
        response = HttpResponse(f.read(), content_type="application/vnd.ms-excel")
        response['Content-Disposition'] = 'inline; filename=' + os.path.basename(file_path)
        return response
   raise Http404

urls.py

re_path(r'^download/(?P<path>.*)$', views.download)

в шаблонах html

<a href="/download">Download</a>

я пробовал все, например, перемещал папку проекта в другой каталог или запускал ее как администратор и т. Д., Но там указано

    Internal Server Error: /download/
Traceback (most recent call last):
  File "C:\Users\Zako5\.virtualenvs\jurnal-6LxuXEYu\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
    response = get_response(request)
  File "C:\Users\Zako5\.virtualenvs\jurnal-6LxuXEYu\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "C:\Users\Zako5\.virtualenvs\jurnal-6LxuXEYu\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\Zako5\PycharmProjects\jurnal\jurnal_app\views.py", line 40, in download
    with open(file_path, 'rb') as fh:
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\Zako5\\PycharmProjects\\jurnal\\media/'
[27/Mar/2019 10:56:09] "GET /download/ HTTP/1.1" 500 66483

любая помощь будет признательна) эта проблема меня бесит уже неделю

1 Ответ

1 голос
/ 27 марта 2019

ваш путь пуст как таковой, он пытается открыть MEDIA_ROOT, который является каталогом

скажем, ваша структура каталогов выглядит следующим образом:

-media root
  - 1.xlsx

Затем вы обновляете html тура как

<a href="/download/1.xlsx">Download</a>

поэтому ваша переменная пути становится 1.xlsx

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