首页 > 解决方案 > django rest框架文件上传使用json数据

问题描述

我已经定义了我的模型序列化程序和文件视图来使用 api 上传文件。当我通过使用 Postman 上传文件来测试我的 API 时,它运行良好,并且文件存储在媒体文件夹中。但在我的 API 中,我以 JSON(字典格式)传递了详细信息。现在我的代码没有选择文件

{
file:"C:\users\admin\Desktop\abc.txt",
uploader :"akash"
}

当我使用 Postman 尝试此操作时,文件名和上传器将存储在数据库中,并且文件存储在我在 settings.py 文件中定义的媒体文件夹中。

我的问题是如何在 API POST 中使用 JSON 格式上传。

标签: python-3.xfile-uploaddjango-rest-framework

解决方案


您可以使用这段代码。为我工作。

import requests


def upload_file(file, url, token):
    files = {
        "file": file,
    }

    headers = {
        "Authorization": "Token " + token,
        "Content-Type": "multipart/form-data;boundary=---WebKitFormBoundaryyrV7KO0BoCBuDbTL"
    }

    response = requests.post(url, files=files, headers=headers)

    return response

在views.py中:

if form.is_valid():
    file = form.cleaned_data['file']

    response = upload_file(file, url, token)

推荐阅读