存储和读取csv文件django

时间:2017-04-12 19:44:34

标签: django forms file-upload django-forms django-uploads

当用户上传文件时,我希望它存储文件,读取前10行并将前10行发送回页面。我不确定如何在视图或客户端执行此操作。

def UploadTest(request):
    if request.POST and request.FILES:
        csvfile = request.FILES['csv_file']
        dialect = csv.Sniffer().sniff(codecs.EncodedFile(csvfile, "utf-8").read(1024))
        csvfile.open()
        reader = csv.reader(codecs.EncodedFile(csvfile, "utf-8"), delimiter=',', dialect=dialect)
    return render(request, 'index.html', {"form": reader} )

这就是我现在views.py所拥有的。但我不希望它呈现新页面。

1 个答案:

答案 0 :(得分:0)

使用FormData从表单获取文件数据,并发送Ajax调用。

如下所示:

function upload(event) {
    event.preventDefault();
    var myFile = new FormData($('form').get(0));

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

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