Как получить содержимое загруженного файла curl в django - PullRequest
0 голосов
/ 22 ноября 2018

Я использую Django 2.1.1 и хотел бы загрузить файл с помощью этой команды curl:

curl -i  -b cookies.txt -c cookies.txt -e https://neon/accounts/login/ \
--cert client.crt --key client.key -F  "name=@afile" \
-H "X-CSRFToken: 9rQMPHGdPJHLVbSEmhwXLc1m9i1KIQVVenRPqP2JkqrldKgWX4GMahOET7pk5cnw" \
-H "Content-type: multipart/form-data" \
-X POST -F 'test=blaat' https://neon/test/

URL-адрес переходит к следующему виду:

def test(request):
    response = pprint.pformat(request.FILES, indent=4)
    return HttpResponse(response)

результат curl:

HTTP/1.1 100 Continue

HTTP/1.1 200 OK
Server: nginx/1.10.3 (Ubuntu)
Date: Thu, 22 Nov 2018 14:37:03 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 72
Connection: keep-alive
X-Frame-Options: SAMEORIGIN
Strict-Transport-Security: max-age=63072000; includeSubdomains
X-Frame-Options: DENY
X-Content-Type-Options: nosniff

{   'name': <InMemoryUploadedFile: afile (application/octet-stream)>}

Так как я могу получить содержимое 'afile' в переменной str в Django ... Я пробовал request.FILES ['file']. chunks (), но donдействительно не имею представления о том, что я пытаюсь здесь.Также запись содержимого в файл на сервере: понятия не имею.Главное состоит в том, чтобы поместить его в переменную, чтобы я мог, например, разобрать JSON из этого файла.

Логин, SSL-сертификаты и аутентификация - все работает нормально.Это не проблема.

1 Ответ

0 голосов
/ 22 ноября 2018

Просто используйте функцию read для файла, а затем декодируйте, используя соответствующую кодировку:


from io import BytesIO

data = request.FILES['name'].read()
data = data.decode('utf-8')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...