Пример #1
0
def upload_file(request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():

            im = Image()
            im.model_pic = form.cleaned_data['file']

            filename = '{0}{1}'.format(
                str(
                    base64.b64encode(
                        bytes(str(datetime.datetime.now().timestamp()),
                              'utf-8')))[2:-2],
                pathlib.Path(form.cleaned_data['file'].name).suffix)
            im.model_pic.name = filename

            x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')

            if x_forwarded_for:
                ipaddress = x_forwarded_for.split(',')[-1].strip()
            else:
                ipaddress = request.META.get('REMOTE_ADDR')

            im.owner = None
            im.upload_ip_address = ipaddress
            im.lease = datetime.datetime.now().replace(
                microsecond=0) + datetime.timedelta(
                    seconds=int(form.cleaned_data['expiration'].split(".")[0]))

            im.name = filename
            if form.cleaned_data['your_name'] == "":
                im.custom_name = None
            else:
                im.custom_name = form.cleaned_data['your_name']

            im.save()

            for tag in request.POST.getlist('tagList'):
                tag = Tag(name=tag.split(":")[0], image=im)
                tag.save()

            return HttpResponseRedirect("/image/view/%s" % filename)
    else:
        form = UploadFileForm()
    return render(request, 'index.html', {'form': form})