Если вы хотите получить размер файла до начала загрузки, вам потребуется использовать Flash или Java-апплет.
Написание собственного обработчика загрузки - лучший подход. Я думаю, что-то вроде следующего будет работать (не проверено). Прекращает загрузку как можно раньше.
from django.conf import settings
from django.core.files.uploadhandler import FileUploadHandler, StopUpload
class MaxSizeUploadHandler(FileUploadHandler):
"""
This test upload handler terminates the connection for
files bigger than settings.MAX_UPLOAD_SIZE
"""
def __init__(self, request=None):
super(MaxSizeUploadHandler, self).__init__(request)
def handle_raw_input(self, input_data, META, content_length, boundary, encoding=None):
if content_length > settings.MAX_UPLOAD_SIZE:
raise StopUpload(connection_reset=True)