0
上傳文件,這是我的彈出的形式使用普通AJAX/JS和Django的
<div class="popup media-upload-form">
<div class="border cf">
<div class="close">X</div>
</div>
<form class="cf" action="" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<!-- {{ form.as_p }} this is what i use, just putting plain html to show you all inputs -->
<p>
<label for="id_audio">Audio:</label>
<input type="file" name="audio" required id="id_audio" />
</p>
<input class="button" type="submit" value="Upload" />
</form>
</div>
這個我怎麼用來做什麼的沒有Ajax
def upload_media(request):
if request.method == 'POST':
form = forms.MediaForm(request.POST, request.FILES)
if form.is_valid():
media_file = form.cleaned_data['audio']
media = models.PlayerMedia()
media.user = request.user
media.title = str(media_file)
media.description = 'good song'
media.media = media_file
media.save()
return HttpResponse('done')
文件從requets.FILES來['文件名'],這就是問題所在,我不知道如何將文件從js發送到django視圖。 JQuery有一些插件,但我想沒有任何庫。
這是我迄今爲止
var uploadForm = document.querySelector('.media-upload-form form');
var fileInput = document.querySelector('.media-upload-form form #id_audio');
uploadForm.onsubmit = function(e) {
e.preventDefault();
var fileToSend = fileInput.value; // this is not it
}
所以我怎麼參考選定文件和使用Ajax發送到Django的處理?