Example #1
0
def media_upload(request, *args, **kwargs):
    shop = get_shop(request)
    try:
        folder_id = int(request.POST.get("folder_id") or request.GET.get("folder_id") or 0)
        path = request.POST.get("path") or request.GET.get("path") or None
        if folder_id != 0:
            folder = _get_folder_query(shop).get(pk=folder_id)
        elif path:
            folder = get_or_create_folder(shop, path)
        else:
            folder = None  # Root folder upload. How bold!
    except Exception as exc:
        return JsonResponse({"error": "Invalid folder: %s" % force_text(exc)})

    try:
        upload_file = request.FILES["file"]

        if upload_file.content_type.startswith("image/"):
            filer_file = filer_image_from_upload(request, path=folder, upload_data=upload_file)
        else:
            filer_file = filer_file_from_upload(request, path=folder, upload_data=upload_file)

        _ensure_media_file(shop, filer_file)
    except Exception as exc:
        return JsonResponse({"error": force_text(exc)})

    return JsonResponse({
        "file": _filer_file_to_json_dict(filer_file),
        "message": _("%(file)s uploaded to %(folder)s") % {
            "file": filer_file.label,
            "folder": get_folder_name(folder)
        }
    })
Example #2
0
def _process_form(request, folder):
    try:
        form = UploadImageForm(request.POST, request.FILES)
        if form.is_valid():
            filer_file = filer_image_from_upload(
                request, path=folder, upload_data=request.FILES['file'])
        elif not request.FILES["file"].content_type.startswith("image/"):
            form = UploadFileForm(request.POST, request.FILES)
            if form.is_valid():
                filer_file = filer_file_from_upload(
                    request, path=folder, upload_data=request.FILES['file'])

        if not form.is_valid():
            return JsonResponse({"error": form.errors}, status=400)

        ensure_media_file(get_shop(request), filer_file)
    except Exception as exc:
        return JsonResponse({"error": force_text(exc)}, status=500)

    return JsonResponse({
        "file": filer_file_to_json_dict(filer_file),
        "message": _("%(file)s uploaded to %(folder)s") % {
            "file": filer_file.label,
            "folder": get_folder_name(folder)
        }
    })
Example #3
0
    def handle_upload(self):
        request = self.request
        try:
            folder_id = int(request.POST.get("folder_id") or request.GET.get("folder_id") or 0)
            if folder_id != 0:
                folder = Folder.objects.get(pk=folder_id)
            else:
                folder = None  # Root folder upload. How bold!
        except Exception as exc:
            return JsonResponse({"error": "Invalid folder: %s" % force_text(exc)})

        try:
            upload_file = request.FILES["file"]

            if upload_file.content_type.startswith("image/"):
                filer_file = filer_image_from_upload(request, path=folder, upload_data=upload_file)
            else:
                filer_file = filer_file_from_upload(request, path=folder, upload_data=upload_file)
        except Exception as exc:
            return JsonResponse({"error": force_text(exc)})

        return JsonResponse({
            "file": _filer_file_to_json_dict(filer_file),
            "message": _("%(file)s uploaded to %(folder)s") % {
                "file": filer_file.label,
                "folder": get_folder_name(folder)
            }
        })
Example #4
0
    def handle_upload(self):
        request = self.request
        try:
            folder_id = int(
                request.POST.get("folder_id") or request.GET.get("folder_id")
                or 0)
            if folder_id != 0:
                folder = Folder.objects.get(pk=folder_id)
            else:
                folder = None  # Root folder upload. How bold!
        except Exception as exc:
            return JsonResponse(
                {"error": "Invalid folder: %s" % force_text(exc)})

        try:
            upload_file = request.FILES["file"]

            if upload_file.content_type.startswith("image/"):
                filer_file = filer_image_from_upload(request,
                                                     path=folder,
                                                     upload_data=upload_file)
            else:
                filer_file = filer_file_from_upload(request,
                                                    path=folder,
                                                    upload_data=upload_file)
        except Exception as exc:
            return JsonResponse({"error": force_text(exc)})

        return JsonResponse({
            "file": _filer_file_to_json_dict(filer_file),
            "message": _("%(file)s uploaded to %(folder)s") % {
                "file": filer_file.label,
                "folder": get_folder_name(folder)
            }
        })
Example #5
0
    def handle_upload(self):
        request = self.request
        shop = get_shop(request)
        try:
            folder_id = int(
                request.POST.get("folder_id") or request.GET.get("folder_id")
                or 0)
            path = request.POST.get("path") or request.GET.get("path") or None
            if folder_id != 0:
                folder = _get_folder_query(shop).get(pk=folder_id)
            elif path:
                folder = get_or_create_folder(shop, path)
            else:
                folder = None  # Root folder upload. How bold!
        except Exception as exc:
            return JsonResponse(
                {"error": "Invalid folder: %s" % force_text(exc)})

        try:
            upload_file = request.FILES["file"]

            if upload_file.content_type.startswith("image/"):
                filer_file = filer_image_from_upload(request,
                                                     path=folder,
                                                     upload_data=upload_file)
                _ensure_media_file(shop, filer_file)
            else:
                filer_file = filer_file_from_upload(request,
                                                    path=folder,
                                                    upload_data=upload_file)
                _ensure_media_file(shop, filer_file)
        except Exception as exc:
            return JsonResponse({"error": force_text(exc)})

        return JsonResponse({
            "file": _filer_file_to_json_dict(filer_file),
            "message": _("%(file)s uploaded to %(folder)s") % {
                "file": filer_file.label,
                "folder": get_folder_name(folder)
            }
        })