2016-11-07 27 views

回答

2

您可以將您的文件作爲原始文件緩衝區如下:

var input = $('#input'); 

input.change(function(event) { 
    var file = this.files[0]; 
    if (!file) return; 

    return $.ajax({ 
    url: '/django-route', // your route to process the file 
    type: 'POST', // 
    data: file, 
    processData: false, 
    contentType: 'application/octet-stream', // set Content-Type header 
    success: function(respnse) { 
     // do something 
    }, 
    error: function(xhr, textStatus, errorThrown) { 
     // do something else 
    } 
    }); 
}); 

如果您需要跟蹤文件上傳進度,添加xhr$.ajax()選項:

xhr: function() { 
    var xhr = new window.XMLHttpRequest(); 
    xhr.upload.addEventListener('progress', function(event) { 
    if (event.lengthComputable) { 
     var progress = Math.floor(10000 * event.loaded/event.total)/10000; 
     console.log(progress); // 0.2536 (25.36%) 
    } 
    }, false); 
    xhr.addEventListener('progress', function(event) { 
    if (event.lengthComputable) { 
     var progress = Math.floor(10000 * event.loaded/event.total)/10000; 
     console.log(progress); 
    } 
    }, false); 
    return xhr; 
} 
+0

號。我沒有收到文件,在request.FILES。它顯示爲空白。 請您結束 (PDB)request.FILES 檢查

+0

由於問題是特定的JS(Django的不特定的),答案是完全有效的。你沒有得到任何文件,因爲我猜django文件解析器中間件默認配置爲接受'application/x-www-form-urlencoded'或'multipart/form-data'請求。檢查'response.body',緩衝區應該在那裏。 –

相關問題