def __init__(self, upload_file, upload_to=None): self.upload_file = upload_file self.upload_to = upload_to file_storage_class = getattr(settings, 'REDACTOR_FILE_STORAGE', 'django.core.files.storage.default_storage') self.file_storage = import_class(file_storage_class)
def form_valid(self, form): file_ = form.cleaned_data['file'] handler_class = import_class(self.upload_handler) uploader = handler_class(file_) uploader.save_file() file_name = uploader.get_filename().encode('utf-8') file_url = uploader.get_url() return HttpResponse(self.response(file_name, file_url))
class RedactorUploadView(FormView): form_class = ImageForm http_method_names = ('post', ) upload_to = getattr(settings, 'REDACTOR_UPLOAD', 'redactor/') upload_handler = getattr(settings, 'REDACTOR_UPLOAD_HANDLER', 'redactor.handlers.SimpleUploader') auth_decorator = getattr(settings, 'REDACTOR_AUTH_DECORATOR', staff_member_required) if isinstance(auth_decorator, basestring): # Given decorator is string, probably because user can't import eg. # django.contrib.auth.decorators.login_required in settings level. # We are expected to import it on our own. auth_decorator = import_class(auth_decorator) @method_decorator(csrf_exempt) @method_decorator(auth_decorator) def dispatch(self, request, *args, **kwargs): if not is_module_image_installed(): data = { 'error': _("ImproperlyConfigured: Neither Pillow nor PIL could be imported: No module named 'Image'" ), } return HttpResponse(json.dumps(data), content_type='application/json') return super(RedactorUploadView, self).dispatch(request, *args, **kwargs) def form_invalid(self, form): # TODO: Needs better error messages try: error = form.errors.values()[-1][-1] except: error = _('Invalid file.') data = { 'error': error, } return HttpResponse(json.dumps(data), content_type='application/json') def form_valid(self, form): file_ = form.cleaned_data['file'] handler_class = import_class(self.upload_handler) uploader = handler_class(file_, upload_to=self.kwargs.get('upload_to', None)) uploader.save_file() file_name = force_str(uploader.get_filename()) file_url = force_str(uploader.get_url()) if file_url[0] != '/': file_url = '/' + file_url data = { 'filelink': file_url, 'filename': file_name, } return HttpResponse(json.dumps(data), content_type='application/json')
def form_valid(self, form): file_ = form.cleaned_data['file'] handler_class = import_class(self.upload_handler) uploader = handler_class(file_, upload_to=self.kwargs.get('upload_to', None)) uploader.save_file() file_name = force_str(uploader.get_filename()) file_url = force_str(uploader.get_url()) file_name_key = 'id' if self.form_class is ImageForm else 'name' data = {'url': file_url, file_name_key: file_name} return HttpResponse(json.dumps(data), content_type='application/json')
def form_valid(self, form): file_ = form.cleaned_data['file'] handler_class = import_class(self.upload_handler) uploader = handler_class(file_, upload_to=self.kwargs.get('upload_to', None)) uploader.save_file() file_name = force_str(uploader.get_filename()) file_url = force_str(uploader.get_url()) file_name_key = 'id' if self.form_class is ImageForm else 'name' data = {'file': {'url': file_url, 'id': file_name}} return HttpResponse(json.dumps(data), content_type='application/json')
def form_valid(self, form): handler_class = import_class(self.upload_handler) uploader = handler_class(form.cleaned_data['file']) uploader.save_file() return HttpResponse( json.dumps({ "filename": uploader.get_filename().encode('utf-8'), "filelink": uploader.get_url(), }), content_type='application/json' )
def post(self, request, **kwargs): file_ = request.FILES.get('file[]') handler_class = import_class(self.upload_handler) uploader = handler_class(file_, upload_to=self.kwargs.get('upload_to', None)) uploader.save_file() file_name = force_str(uploader.get_filename()) file_url = force_str(uploader.get_url()) file_name_key = 'id' if 'upload/image' in request.path else 'name' data = {'file': {'url': file_url, file_name_key: file_name}} return HttpResponse(json.dumps(data), content_type='application/json')
def form_valid(self, form): file_ = form.cleaned_data['file'] handler_class = import_class(self.upload_handler) uploader = handler_class(file_) uploader.save_file() file_name = force_str(uploader.get_filename()) file_url = force_str(uploader.get_url()) data = { 'filelink': file_url, 'filename': file_name, } return HttpResponse(json.dumps(data), content_type='application/json')
def __init__(self, upload_file, upload_to=None): self.upload_file = upload_file self.upload_to = upload_to file_storage_class = getattr(settings, 'REDACTOR_FILE_STORAGE', 'django.core.files.storage.DefaultStorage') # File storage can either be a Storage instance (currently deprecated), # or a class which we should instantiate ourselves file_storage = import_class(file_storage_class) if isinstance(file_storage, type): # The class case file_storage = file_storage() self.file_storage = file_storage
def __init__(self, upload_file, upload_to=None): self.upload_file = upload_file self.upload_to = upload_to file_storage_class = getattr( settings, 'REDACTOR_FILE_STORAGE', 'django.core.files.storage.DefaultStorage') # File storage can either be a Storage instance (currently deprecated), # or a class which we should instantiate ourselves file_storage = import_class(file_storage_class) if isinstance(file_storage, type): # The class case file_storage = file_storage() self.file_storage = file_storage
class RedactorUploadView(FormView): form_class = ImageForm http_method_names = ('post', ) upload_to = getattr(settings, 'REDACTOR_UPLOAD', 'redactor/') upload_handler = getattr(settings, 'REDACTOR_UPLOAD_HANDLER', 'redactor.handlers.SimpleUploader') auth_decorator = getattr(settings, 'REDACTOR_AUTH_DECORATOR', staff_member_required) if isinstance(auth_decorator, basestring): # Given decorator is string, probably because user can't import eg. # django.contrib.auth.decorators.login_required in settings level. # We are expected to import it on our own. auth_decorator = import_class(auth_decorator) @method_decorator(csrf_exempt) @method_decorator(auth_decorator) def dispatch(self, request, *args, **kwargs): if not is_module_image_installed(): data = { 'error': True, 'message': _("ImproperlyConfigured: Neither Pillow nor PIL could be imported: No module named 'Image'" ) } return HttpResponse(json.dumps(data), status=400, content_type='application/json') return super(RedactorUploadView, self).dispatch(request, *args, **kwargs) def get_form(self, form_class=None): """Return an instance of the form to be used in this view.""" if form_class is None: form_class = self.get_form_class() kwargs = self.get_form_kwargs() # there is a bug in redactor3, it appends '[]' to fieldname if 'files' in kwargs and 'file[]' in kwargs['files']: kwargs['files']['file'] = kwargs['files']['file[]'] return form_class(**kwargs) def form_invalid(self, form): # TODO: Needs better error messages try: message = form.errors.values()[-1][-1] except: message = _('Invalid file.') data = {'error': True, 'message': message} return HttpResponse(json.dumps(data), status=400, content_type='application/json') def form_valid(self, form): file_ = form.cleaned_data['file'] handler_class = import_class(self.upload_handler) uploader = handler_class(file_, upload_to=self.kwargs.get('upload_to', None)) uploader.save_file() file_name = force_str(uploader.get_filename()) file_url = force_str(uploader.get_url()) file_name_key = 'id' if self.form_class is ImageForm else 'name' data = {'file': {'url': file_url, 'id': file_name}} return HttpResponse(json.dumps(data), content_type='application/json')