Django JQuery Ajax File Upload

后端 未结 3 1196
猫巷女王i
猫巷女王i 2020-11-27 16:03

I\'ve been trying to upload a simple text file for hours now but I still can\'t seem to get it working.

I keep getting invalid forms saying I\'m missing the \"file_s

3条回答
  •  无人及你
    2020-11-27 16:35

    Here is what I changed to get it working.

    1. I used FormData to package up data from form

    2. Notice the parameters of the form in the Django view. I was not specifying "files" before and that's what caused the " file field required" error.

    Javascript:

    function upload(event) {
    event.preventDefault();
    var data = new FormData($('form').get(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 View:

    def upload_view(request):
        if request.method == 'POST':
            form = FileUploadForm(data=request.POST, files=request.FILES)
            if form.is_valid():
                print 'valid form'
            else:
                print 'invalid form'
                print form.errors
        return HttpResponseRedirect('/ingest/')
    

提交回复
热议问题