[英]Post file using jquery in Django
我想使用jQuery将CSV文件发布到Django视图
<form id="form" enctype="multipart/form-data" >
<input type="file" name="ListFile" id="ListFile" />
<button type="button" onclick="csv_send">upload</button>
</form><br>
js是:
function csv_send(){
var data = {
'csrfmiddlewaretoken' : $('input[name=csrfmiddlewaretoken]').val(),
'data': $("#ListFile").val()
}
/*$.ajax({
type: 'POST',
url:'/list/create/',
cache:false,
dataType:'json',
data:data,
success: function(result) {
console.log("ok")
}
});*/
}
django views.py:
def createlist(request):
if request.method == 'POST':
file = request.FILES
这里没有文件。
我知道使用form action获取文件。但是在这里,我想通过javascript发布文件,因为我想在成功后回复javascript。 显然我希望由request.FILES在views.py中的文件
上载文件时,您的表单必须具有以下属性:
enctype='multipart/form-data'
像这样:
<form id="form" enctype='multipart/form-data'>
您必须使用FormData对象和基本ajax发布的稍微修改的版本:
var data = new FormData();
var file = null;
//when uploading a file take the file
$("#your-file-input-id").on("change", function(){
file = this.files[0]
});
//append the file in the data
data.append("file", file);
//append other data
data.append("message", "some content");
$.ajax({
url: '/path',
type: 'POST',
data: data,
contentType: false,
processData: false,
success: function (data, status, xhr) {
//handle success },
error: function (data, status, xhr) {
//handle error
}
});
在Django中,您可以在request.FILES ['file']中找到该文件。 我希望这是有帮助的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.