javascript - Ajax 文件上传 Django

标签 javascript jquery python ajax django

我有一个带有输入文件的表单,需要将文件异步上传到 Django,但不能使用 ajax。代码如下:

表格:

<form id="upload" method="post" action="/upload/" enctype="multipart/form-data">
<input type="file" name="test" id="test'>
<button  type="submit">Upload</button></form>

JS:

function upload(event) {
    event.preventDefault();
    var data = new FormData();
    data.append('upload',$('#test').prop('files')[0]);

    $.ajax({
        url: $(this).attr('action'),
        type: $(this).attr('method'),
        data: data,
        cache: false,
        processData: false,
        contentType: false,
        success: function(data) {
            alert('success');
        }
    });
    return false;
}

$(function() {
    $('form').submit(upload);
});

Django :

def upload(request):
    print(request.FILES)

Django 返回:

<MultiValueDict: {}>

控制台 JS:

console.log(data.get('upload'));
File { name: "test.csv", lastModified: 1446743198000, lastModifiedDate: Date 2015-11-05T17:06:38.000Z, size: 14, type: "text/csv" }

我做错了什么?

最佳答案

我可以通过将表单数据发送到同一 View 来使其工作。老实说不知道发生了什么。

关于javascript - Ajax 文件上传 Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34335519/

相关文章:

javascript - 在 JavaScript 中更新具有多行的两个字段

javascript - 在 JQuery 中滚动到元素时向下滑动

python - 如何/在哪里使用 os.path.sep?

python - 如何使用boto3获取我拥有的EBS快照列表?

javascript - 在不知道 javascript 中的标识符的情况下解析 json

javascript - 为什么 React/Redux 会重置所有事件处理程序,即使 `state` 没有改变

javascript - 用Javascript/jQuery判断何时播放YouTube

javascript - 如果网站位于框架/iframe 内,document.referer 是否始终包含值?

javascript - 视差滚动断断续续

python - 使用 Python 将字符串拆分为列表