【问题标题】:POST request to upload filePOST 请求上传文件
【发布时间】:2021-08-10 08:53:49
【问题描述】:

我想将文件上传到我的 django 应用程序。

views.py

@api_view(['POST'])
def upload_to_evm(request):
    if request.method == 'POST' and request.FILES['file']:
        file = request.FILES['file']
        filename = FileSystemStorage().save('abcd', file)
        return JsonResponse({'Status': 'Successful'})

urls.py

urlpatterns = [
    path('api/evm_process/', views.upload_to_evm)
]

目前,我使用Binary File 选项和标头Content-Type: multipart/form-data 发送我的请求,它给出MultiValueDictKeyError 错误,这意味着我的request.FILES 是空的,我不明白为什么。

我的问题是:

  1. 使用相同的所有标头和 query_params 发出 POST 请求的正确方法是什么?
  2. 我是否需要解析器(FileUploadParser、MultiPartParser 或 FormParser)来上传、保存或处理上传的文件?

Python 版本:3.6.9
Django 版本:3.2.3

【问题讨论】:

    标签: python django post file-upload django-rest-framework


    【解决方案1】:
    1. 标题
    "content-type": "multipart/form-data;boundary=---------------  "
    "X-CSRFToken": csrf_token
    

    在这里你必须设置边界。是分隔文件名和类型的字符串。

    1. 您需要导入 Multipartparser 和 FormParser。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-13
      • 2018-12-16
      • 2017-12-25
      • 1970-01-01
      • 2011-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多