所以我想上传没有任何外部插件的文件,但我遇到了一些错误。Django ajax文件上传
<form method="" action="" name='upload_form' id='upload_form' >
{% csrf_token %}
<input type='file' name='file' id='file' />
<input type='button' value='Upload' id='upload'/>
</form>
<script type='text/javascript'>
$(document).ready(function() {
var csrf_token = $('input[name="csrfmiddlewaretoken"]').val();
$('#upload').click(function() {
$.ajax({
csrfmiddlewaretoken: csrf_token,
type: 'POST',
url : 'upload',
enctype: "multipart/form-data",
data : {
'file': $('#file').val()
},
success: function(data) {
console.log(data)
}
})
})
})
</script>
我的服务器:
class ImageUploadView(LoginRequiredMixin, JSONResponseMixin, AjaxResponseMixin, CurrentUserIdMixin, View):
@method_decorator(csrf_protect)
def dispatch(self, *args, **kwargs):
return super(ImageUploadView, self).dispatch(*args, **kwargs)
def post_ajax(self, request, username):
print request.POST.get('file', None)
print request.FILES
# id = request.POST['id']
# path = 'pictures/'
# f = request.FILES['picture']
# destination = open(path, 'wb+')
# for chunk in f.chunks():
# destination.write(chunk)
# destination.close()
return HttpResponse("image uploaded")
我得到<MultiValueDict: {}>
为request.FILES
如何正确获取上传的文件,现在我的代码?
您不能上传文件一样,使用Ajax。你不幸的确需要一个插件,通过框架来做,或者使用FormData等新的HTML5功能。 – 2013-05-14 10:30:36
如何用html5异步执行?你有链接吗? – psychok7 2013-05-14 10:33:10
http://blueimp.github.io/jQuery-File-Upload//http://www.script-tutorials.com/pure-html5-file-upload/ – 2013-05-14 10:36:03