def _upload_file(request): """ Upload file to the server. Implement unicode handlers - https://github.com/sehmaschine/django-filebrowser/blob/master/filebrowser/sites.py#L471 """ if request.method == 'POST': folder = request.POST.get('folder') fb_uploadurl_re = re.compile(r'^.*(%s)' % reverse("fb_upload")) folder = fb_uploadurl_re.sub('', folder) if request.FILES: filedata = request.FILES['Filedata'] directory = get_directory() # PRE UPLOAD SIGNAL filebrowser_pre_upload.send(sender=request, path=request.POST.get('folder'), file=filedata) # Try and remove both original and normalised thumb names, # in case files were added programmatically outside FB. file_path = os.path.join(directory, folder, filedata.name) remove_thumbnails(file_path) filedata.name = convert_filename(filedata.name) file_path = os.path.join(directory, folder, filedata.name) remove_thumbnails(file_path) # HANDLE UPLOAD uploadedfile = default_storage.save(file_path, filedata) if default_storage.exists(file_path): default_storage.move(smart_text(uploadedfile), smart_text(file_path), allow_overwrite=True) # POST UPLOAD SIGNAL filebrowser_post_upload.send(sender=request, path=request.POST.get('folder'), file=FileObject(smart_text(file_path))) return HttpResponse('True')
def _upload_file(request): """ Upload file to the server. Implement unicode handlers - https://github.com/sehmaschine/django-filebrowser/blob/master/filebrowser/sites.py#L471 """ if request.method == 'POST': folder = request.POST.get('folder') fb_uploadurl_re = re.compile(r'^.*(%s)' % reverse("fb_upload")) folder = fb_uploadurl_re.sub('', folder) if request.FILES: filedata = request.FILES['Filedata'] # PRE UPLOAD SIGNAL filebrowser_pre_upload.send(sender=request, path=request.POST.get('folder'), file=filedata) filedata.name = convert_filename(filedata.name) # HANDLE UPLOAD exists = default_storage.exists(os.path.join(get_directory(), folder, filedata.name)) abs_path = os.path.join(get_directory(), folder, filedata.name) uploadedfile = default_storage.save(abs_path, filedata) path = os.path.join(get_directory(), folder) file_name = os.path.join(path, filedata.name) if exists: default_storage.move(smart_text(uploadedfile), smart_text(file_name), allow_overwrite=True) # POST UPLOAD SIGNAL filebrowser_post_upload.send(sender=request, path=request.POST.get('folder'), file=FileObject(smart_text(file_name))) return HttpResponse('True')
def rename(request): """ Rename existing File/Directory. Includes renaming existing Image Versions/Thumbnails. """ from filebrowser_safe.forms import RenameForm # QUERY / PATH CHECK query = request.GET path = get_path(query.get('dir', '')) filename = query.get('filename', '') if path is None or filename is None: if path is None: msg = _('The requested Folder does not exist.') else: msg = _('The requested File does not exist.') messages.add_message(request, messages.ERROR, msg) return HttpResponseRedirect(reverse("fb_browse")) abs_path = os.path.join(MEDIA_ROOT, get_directory(), path) file_extension = os.path.splitext(filename)[1].lower() if request.method == 'POST': form = RenameForm(abs_path, file_extension, request.POST) if form.is_valid(): relative_server_path = os.path.join(get_directory(), path, filename) new_filename = form.cleaned_data['name'] + file_extension new_relative_server_path = os.path.join(get_directory(), path, new_filename) try: # PRE RENAME SIGNAL filebrowser_pre_rename.send(sender=request, path=path, filename=filename, new_filename=new_filename) # RENAME ORIGINAL remove_thumbnails(new_relative_server_path) default_storage.move(relative_server_path, new_relative_server_path) # POST RENAME SIGNAL filebrowser_post_rename.send(sender=request, path=path, filename=filename, new_filename=new_filename) # MESSAGE & REDIRECT msg = _('Renaming was successful.') messages.add_message(request, messages.SUCCESS, msg) redirect_url = reverse("fb_browse") + query_helper(query, "", "filename") return HttpResponseRedirect(redirect_url) except OSError as xxx_todo_changeme1: (errno, strerror) = xxx_todo_changeme1.args form.errors['name'] = forms.util.ErrorList([_('Error.')]) else: form = RenameForm(abs_path, file_extension) return render_to_response('filebrowser/rename.html', { 'form': form, 'query': query, 'file_extension': file_extension, 'title': _(u'Rename "%s"') % filename, 'settings_var': get_settings_var(), 'breadcrumbs': get_breadcrumbs(query, path), 'breadcrumbs_title': _(u'Rename') }, context_instance=Context(request))
def _upload_file(request): """ Upload file to the server. Implement unicode handlers - https://github.com/sehmaschine/django-filebrowser/blob/master/filebrowser/sites.py#L471 """ if request.method == 'POST': folder = request.POST.get('folder') fb_uploadurl_re = re.compile(r'^.*(%s)' % reverse("fb_upload")) folder = fb_uploadurl_re.sub('', folder) if "." in folder: return HttpResponseBadRequest("") if request.FILES: filedata = request.FILES['Filedata'] directory = get_directory() # PRE UPLOAD SIGNAL filebrowser_pre_upload.send(sender=request, path=request.POST.get('folder'), file=filedata) # Try and remove both original and normalised thumb names, # in case files were added programmatically outside FB. file_path = os.path.join(directory, folder, filedata.name) remove_thumbnails(file_path) filedata.name = convert_filename(filedata.name) file_path = os.path.join(directory, folder, filedata.name) remove_thumbnails(file_path) # HANDLE UPLOAD uploadedfile = default_storage.save(file_path, filedata) if default_storage.exists(file_path) and file_path != uploadedfile: default_storage.move(smart_text(uploadedfile), smart_text(file_path), allow_overwrite=True) # POST UPLOAD SIGNAL filebrowser_post_upload.send(sender=request, path=request.POST.get('folder'), file=FileObject( smart_text(file_path))) get_params = request.POST.get('get_params') if get_params: return HttpResponseRedirect(reverse('fb_browse') + get_params) return HttpResponse('True')
def _upload_file(request): """ Upload file to the server. """ if request.method == "POST": folder = request.POST.get("folder") fb_uploadurl_re = re.compile(r"^.*(%s)" % reverse("fb_upload")) folder = fb_uploadurl_re.sub("", folder) if "." in folder: return HttpResponseBadRequest("") if request.FILES: filedata = request.FILES["Filedata"] directory = get_directory() # Validate file against EXTENSIONS setting. if not get_file_type(filedata.name): return HttpResponseBadRequest("") # PRE UPLOAD SIGNAL filebrowser_pre_upload.send(sender=request, path=request.POST.get("folder"), file=filedata) # Try and remove both original and normalised thumb names, # in case files were added programmatically outside FB. file_path = os.path.join(directory, folder, filedata.name) remove_thumbnails(file_path) filedata.name = convert_filename(filedata.name) file_path = os.path.join(directory, folder, filedata.name) remove_thumbnails(file_path) if "." in file_path and file_path.split(".")[-1].lower() in ESCAPED_EXTENSIONS: filedata = ContentFile(escape(filedata.read()), name=filedata.name) # HANDLE UPLOAD uploadedfile = default_storage.save(file_path, filedata) if default_storage.exists(file_path) and file_path != uploadedfile: default_storage.move(smart_text(uploadedfile), smart_text(file_path), allow_overwrite=True) # POST UPLOAD SIGNAL filebrowser_post_upload.send( sender=request, path=request.POST.get("folder"), file=FileObject(smart_text(file_path)) ) get_params = request.POST.get("get_params") if get_params: return HttpResponseRedirect(reverse("fb_browse") + get_params) return HttpResponse("True")
def _upload_file(request): """ Upload file to the server. """ if request.method == 'POST': folder = request.POST.get('folder') fb_uploadurl_re = re.compile(r'^.*(%s)' % reverse("fb_upload")) folder = fb_uploadurl_re.sub('', folder) if "." in folder: return HttpResponseBadRequest("") if request.FILES: filedata = request.FILES['Filedata'] directory = get_directory() # Validate file against EXTENSIONS setting. if not get_file_type(filedata.name): return HttpResponseBadRequest("") # PRE UPLOAD SIGNAL filebrowser_pre_upload.send(sender=request, path=request.POST.get('folder'), file=filedata) # Try and remove both original and normalised thumb names, # in case files were added programmatically outside FB. file_path = os.path.join(directory, folder, filedata.name) remove_thumbnails(file_path) filedata.name = convert_filename(filedata.name) file_path = os.path.join(directory, folder, filedata.name) remove_thumbnails(file_path) if "." in file_path and file_path.split(".")[-1].lower() in ESCAPED_EXTENSIONS: filedata = ContentFile(escape(filedata.read()), name=filedata.name) # HANDLE UPLOAD uploadedfile = default_storage.save(file_path, filedata) if default_storage.exists(file_path) and file_path != uploadedfile: default_storage.move(smart_text(uploadedfile), smart_text(file_path), allow_overwrite=True) # POST UPLOAD SIGNAL filebrowser_post_upload.send(sender=request, path=request.POST.get('folder'), file=FileObject(smart_text(file_path))) get_params = request.POST.get('get_params') if get_params: return HttpResponseRedirect(reverse('fb_browse') + get_params) return HttpResponse('True')
def rename(request): """ Rename existing File/Directory. Includes renaming existing Image Versions/Thumbnails. """ from filebrowser_safe.forms import RenameForm # QUERY / PATH CHECK query = request.GET path = get_path(query.get('dir', '')) filename = query.get('filename', '') if path is None or filename is None: if path is None: msg = _('The requested Folder does not exist.') else: msg = _('The requested File does not exist.') messages.add_message(request, messages.ERROR, msg) return HttpResponseRedirect(reverse("fb_browse")) abs_path = os.path.join(MEDIA_ROOT, DIRECTORY, path) file_extension = os.path.splitext(filename)[1].lower() if request.method == 'POST': form = RenameForm(abs_path, file_extension, request.POST) if form.is_valid(): relative_server_path = os.path.join(DIRECTORY, path, filename) new_filename = form.cleaned_data['name'] + file_extension new_relative_server_path = os.path.join(DIRECTORY, path, new_filename) try: # PRE RENAME SIGNAL filebrowser_pre_rename.send(sender=request, path=path, filename=filename, new_filename=new_filename) # RENAME ORIGINAL default_storage.move(relative_server_path, new_relative_server_path) # POST RENAME SIGNAL filebrowser_post_rename.send(sender=request, path=path, filename=filename, new_filename=new_filename) # MESSAGE & REDIRECT msg = _('Renaming was successful.') messages.add_message(request, messages.SUCCESS, msg) redirect_url = reverse("fb_browse") + query_helper(query, "", "filename") return HttpResponseRedirect(redirect_url) except OSError, (errno, strerror): form.errors['name'] = forms.util.ErrorList([_('Error.')])
def _upload_file(request): """ Upload file to the server. """ if request.method == 'POST': folder = request.POST.get('folder') fb_uploadurl_re = re.compile(r'^.*(%s)' % reverse("fb_upload")) folder = fb_uploadurl_re.sub('', folder) if request.FILES: filedata = request.FILES['Filedata'] abs_path = os.path.join(DIRECTORY, folder, filedata.name) # PRE UPLOAD SIGNAL filebrowser_pre_upload.send(sender=request, path=request.POST.get('folder'), file=filedata) # HANDLE UPLOAD exists = default_storage.exists(os.path.join(DIRECTORY, folder, filedata.name)) uploadedfile = default_storage.save(abs_path, filedata) if exists: default_storage.move(uploadedfile, filedata.name, allow_overwrite=True) # POST UPLOAD SIGNAL filebrowser_post_upload.send(sender=request, path=request.POST.get('folder'), file=FileObject(os.path.join(DIRECTORY, folder, filedata.name))) return HttpResponse('True')
def _upload_file(request): """ Upload file to the server. Implement unicode handlers - https://github.com/sehmaschine/django-filebrowser/blob/master/filebrowser/sites.py#L471 """ if request.method == 'POST': folder = request.POST.get('folder') fb_uploadurl_re = re.compile(r'^.*(%s)' % reverse("fb_upload")) folder = fb_uploadurl_re.sub('', folder) if request.FILES: filedata = request.FILES['Filedata'] # PRE UPLOAD SIGNAL filebrowser_pre_upload.send(sender=request, path=request.POST.get('folder'), file=filedata) filedata.name = convert_filename(filedata.name) # HANDLE UPLOAD exists = default_storage.exists( os.path.join(get_directory(), folder, filedata.name)) abs_path = os.path.join(get_directory(), folder, filedata.name) uploadedfile = default_storage.save(abs_path, filedata) path = os.path.join(get_directory(), folder) file_name = os.path.join(path, filedata.name) if exists: default_storage.move(smart_text(uploadedfile), smart_text(file_name), allow_overwrite=True) # POST UPLOAD SIGNAL filebrowser_post_upload.send(sender=request, path=request.POST.get('folder'), file=FileObject( smart_text(file_name))) return HttpResponse('True')
def rename(request): """ Rename existing File/Directory. Includes renaming existing Image Versions/Thumbnails. """ from filebrowser_safe.forms import RenameForm # QUERY / PATH CHECK query = request.GET path = get_path(query.get('dir', '')) filename = query.get('filename', '') if path is None or filename is None: if path is None: msg = _('The requested Folder does not exist.') else: msg = _('The requested File does not exist.') messages.add_message(request, messages.ERROR, msg) return HttpResponseRedirect(reverse("fb_browse")) abs_path = os.path.join(MEDIA_ROOT, get_directory(), path) file_extension = os.path.splitext(filename)[1].lower() if request.method == 'POST': form = RenameForm(abs_path, file_extension, request.POST) if form.is_valid(): relative_server_path = os.path.join(get_directory(), path, filename) new_filename = form.cleaned_data['name'] + file_extension new_relative_server_path = os.path.join(get_directory(), path, new_filename) try: # PRE RENAME SIGNAL filebrowser_pre_rename.send(sender=request, path=path, filename=filename, new_filename=new_filename) # RENAME ORIGINAL remove_thumbnails(new_relative_server_path) default_storage.move(relative_server_path, new_relative_server_path) # POST RENAME SIGNAL filebrowser_post_rename.send(sender=request, path=path, filename=filename, new_filename=new_filename) # MESSAGE & REDIRECT msg = _('Renaming was successful.') messages.add_message(request, messages.SUCCESS, msg) redirect_url = reverse("fb_browse") + query_helper( query, "", "filename") return HttpResponseRedirect(redirect_url) except OSError as xxx_todo_changeme1: (errno, strerror) = xxx_todo_changeme1.args form.errors['name'] = forms.util.ErrorList([_('Error.')]) else: file_basename = os.path.splitext(filename)[0] form = RenameForm(abs_path, file_extension, initial={'name': file_basename}) return render( request, 'filebrowser/rename.html', { 'form': form, 'query': query, 'file_extension': file_extension, 'title': _(u'Rename "%s"') % filename, 'settings_var': get_settings_var(), 'breadcrumbs': get_breadcrumbs(query, path), 'breadcrumbs_title': _(u'Rename') })
def _upload_file(request): """ Upload file to the server. Implement unicode handlers - https://github.com/sehmaschine/django-filebrowser/blob/master/filebrowser/sites.py#L471 """ if request.method == 'POST': folder = request.POST.get('folder') fb_uploadurl_re = re.compile(r'^.*(%s)' % reverse("fb_upload")) folder = fb_uploadurl_re.sub('', folder) if "." in folder: return HttpResponseBadRequest("") parent_path = folder if folder else None parent_query = FileBrowserItem.objects.filter( path_relative_directory=parent_path, filetype='folder') parent = parent_query.first() if request.FILES: filedata = request.FILES['Filedata'] directory = get_directory() # Validate file against EXTENSIONS setting. if not get_file_type(filedata.name): return HttpResponseBadRequest("") # PRE UPLOAD SIGNAL filebrowser_pre_upload.send(sender=request, path=request.POST.get('folder'), file=filedata) # Try and remove both original and normalised thumb names, # in case files were added programmatically outside FB. file_path = os.path.join(directory, folder, filedata.name) remove_thumbnails(file_path) filedata.name = convert_filename(filedata.name) file_path = os.path.join(directory, folder, filedata.name) remove_thumbnails(file_path) # HANDLE UPLOAD uploadedfile = default_storage.save(file_path, filedata) if default_storage.exists(file_path) and file_path != uploadedfile: default_storage.move(smart_text(uploadedfile), smart_text(file_path), allow_overwrite=True) # POST UPLOAD SIGNAL filebrowser_post_upload.send(sender=request, path=request.POST.get('folder'), file=FileObject( smart_text(file_path))) if not FileBrowserItem.objects.filter(path=file_path).exists(): fileobject = FileObject(file_path) FileBrowserItem.objects.create( filename=fileobject.filename, parent=parent, path=fileobject.path, path_relative_directory=fileobject.path_relative_directory, url=fileobject.url, extension=fileobject.extension, filetype=fileobject.filetype.lower(), filesize=fileobject.filesize, datetime=fileobject.datetime) get_params = request.POST.get('get_params') if get_params: return HttpResponseRedirect(reverse('fb_browse') + get_params) return HttpResponse('True')