首页 文章

multipart / formdata不使用jQuery.ajax发送文件数据

提问于
浏览
4

我有一个Django后端人员的 endpoints ,文档内容如下:

POST到/ api / 1 / photo-uploads /使用enctype =“multipart / form-data”,文件名为“files []” .

我一直在尝试使用jquery的AJAX方法使用formData发送上传的文件 . 我继续收到错误,表明文件未发送 . 当我查看有效载荷时,我看到了 .

undefined
------WebKitFormBoundary9AzM2HQPcyWLAgyR
Content-Disposition: form-data; name="file"; filename="auzLyrW.jpg"
Content-Type: image/jpeg

这并不一定意味着它没有发送,但肯定没有发布位置 . 我没有任何关于文件上传的验证 .

var formData = new FormData();
    formData.append('file', $('#file-upload').get(0).files[0]);
    $.ajax({
        url: '/api/1/photo-uploads/',
        type: 'POST',
        data: formData,
        cache: false,
        contentType: false,
        processData: false,
    });

当我在console.log formData 时,它只显示原型方法,如 .append . 所以我发送的数据超出了检查有效负载的范围 . 我可以记录 $('#file-upload').get(0).files[0] 但我只看到文件本身的详细信息 . 因为我在本地测试它,上传位置应该像localhost:8000 / .

后端人员的印象是它正在做的事情 . 当我做一个简单的表单帖子时它工作正常 . 我已经尝试了一些插件和基本方法,并且都生成了 400 {"message": "No photos supplied.", "success": false}

任何想法,将不胜感激 .

1 回答

  • 6

    该文档要求将其称为 files[] . 发送的是 file .

    formData.append('files[]', $('#file-upload').get(0).files[0]);

相关问题