如何从FormData获取帖子数据



我让如何从ajax formdata获取数据感到困惑。到目前为止,我只使用了请求。而且我以前从未使用过formdata。因此,我不知道如何处理数据。

我的客户端脚本是以下内容。

var formData = new FormData();
formData.append('filename', image_file_name);
formData.append('image', image_file);
$.ajax({
    url: HOST_NAME + "user/api/file_uploader/",
    type: 'POST',
    dataType: 'json',
    timeout: 10000,
    data: formData,
    processData: false,
    contentType: false
})
.done(function (data) {
    console.log("success");
})
.fail(function (XMLHttpRequest, textStatus, errorThrown) {
    console.log("failed");
})

和我的服务器端代码如下。

def post(self, request, format=None):
    outputLogFile("Upload Function is called...")
    req_file_name = request.POST.form['filename']
    req_image = request.POST.form['image']

我想将文件名放入req_file_name中,然后将图像放入req_image中。但是我不知道我该怎么做才能实现这一目标。

请提供建议。

文件是通过request.FILES而不是request.POST访问的,因此您应该使用:

def post(self, request, *args, **kwargs):
    req_image = request.FILES["image"]
    req_file_name = request.data["filename"]

当我使用此创建图像上传时,我通常会将其添加到我的Apiview:

class ExampleImageUpload(APIView):
    parser_classes = (JSONParser, FormParser, MultiPartParser, )

不要忘记导入它们:

from rest_framework.parsers import JSONParser, FormParser, MultiPartParser

您也不需要dataType: 'json',,所以我只是将其删除。

最新更新