Я создаю веб-сайт, где пользователь может загружать музыкальные файлы, и он будет сохранен в каталоге. Поэтому я добавил следующую HTML-форму:
<form action='upload/' method='POST' enctype="multipart/form-data">{% csrf_token %}
<input type="file" name="file">
<input type="submit" name="">
</form>
Я успешно настроил URL для обработки этого запроса. Вот мнение, на которое указывает этот URL:
def uploadMusic(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
handle_uploaded_file(request.FILES['file'])
return HttpResponse('Success')
else:
return HttpResponse('Could not verify')
else:
form = UploadFileForm()
return HttpResponse('Failed')
Кроме того, я хочу, чтобы этот музыкальный файл был проверен перед сохранением в каталоге. Я хочу, чтобы размер файла был меньше, чем 4 МБ. В мой файл forms.py я добавил следующие коды:
from django import forms
class UploadFileForm(forms.Form):
title = forms.CharField(max_length=50)
file = forms.FileField()
def clean(self):
file = self.cleaned_data.get('file', False)
if file:
if file._size > 4*1024*1024:
return 'Error'
else:
return file
else:
raise forms.ValidationError('Wrong')
Хорошо, проблема в том, что я не могу заставить это работать. Я не получаю ошибок, но файл успешно загружен, несмотря на размер файла.
PS: я новичок