Files
@ 2a23a0a55ea0
Branch filter:
Location: website/conservancy/ccs_upload/views.py - annotation
2a23a0a55ea0
1.1 KiB
text/x-python
usethesource: Add comment time field
9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 9a06def0e723 889dbcf38c50 9a06def0e723 | import logging
import os
import random
from django.contrib import messages
from django.shortcuts import redirect, render
from .forms import UploadForm
CCS_UPLOAD_PATH = '/tmp/'
logger = logging.getLogger(__name__)
def upload(request):
if request.method == 'POST':
form = UploadForm(request.POST, request.FILES)
if form.is_valid():
file = request.FILES['file']
_handle_uploaded_file(file)
messages.add_message(request, messages.INFO, '"{}" was successfully uploaded.'.format(file.name))
return redirect('ccs_upload:form')
else:
form = UploadForm()
return render(request, 'ccs_upload/upload.html', {'form': form})
def _handle_uploaded_file(f):
filename = _hash_prefixed_filename(f.name)
path = os.path.join(CCS_UPLOAD_PATH, filename)
with open(path, 'wb+') as destination:
for chunk in f.chunks():
destination.write(chunk)
logger.info('Wrote uploaded file to {}.'.format(path))
def _hash_prefixed_filename(name):
return '{hash:x} {name}'.format(hash=random.getrandbits(32), name=name)
|