【问题标题】:JS fetch multiple pics (as FormData) to Django to saveJS 获取多张图片(作为 FormData)到 Django 保存
【发布时间】:2021-03-18 10:01:44
【问题描述】:

我确信这看起来很基础,但这是我第一次尝试使用 fetch 将文件上传到 django,我不确定如何在 Django 中操作和访问 FormData。
这会造成很多不工作jpg 文件。如何解决?
HTML:

<div>  
   <textarea></textarea>
   <input type="file" multiple></input>
   <button onClick="dothis()" >Sound</button>
</div>

JS:

    function dothis(){
        let data = new FormData();
        let input = event.target.previousElementSibling;
        for (let file of input.files){
            d.append( "hello", file);
        }

        fetch("/images", {
            credentials: "include",
            method: "POST",
            mode: "same-origin",
            headers: {
                "Accept": "application/json",
                "Content-Type": "application/json",  // or "multipart/form-data"??
                "X-CSRFToken": csrf
            },
            body: data
        })
        .then(response => response.json())
        .then(result => {
            console.log("Well?");
        })

Django views.by:

def images(request):
    print(request.body)
    form = request.body
    filename = 0
    for ff in form:
       filename += 1
       with open(f"{filename}.jpg", "wb+") as f:
           f.write(ff)
    return JsonResponse(status=201)

【问题讨论】:

    标签: javascript django file-io fetch


    【解决方案1】:

    想通了……

    从 fetch 的标头中删除 Content-Type

    使用 request.FILES 访问 views.by 中的文件

    【讨论】:

      猜你喜欢
      • 2020-12-17
      • 2020-08-18
      • 2015-04-14
      • 2021-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-02
      • 2018-12-04
      相关资源
      最近更新 更多