Ejemplo n.º 1
0
def delete_view(request):
    try:
        data = json.loads(request.body)
        for path in data['paths']:
            full_path = os.path.join(settings.MEDIA_ROOT, drop_path_base(path))
            verify_path(full_path)
            delete_any(full_path)
    except Exception, e:
        logging.exception('Error in delete_view')
        return HttpResponse(unicode(e))
Ejemplo n.º 2
0
def paste_view(request):
    from shutil import move
    data = request.session.get('clipboard', {})
    paths = data.get('paths', [])
    if not paths:
        return HttpResponse('Your clipboard is empty.')
    mode = data.get('mode', 'copy')
    method = copy_any if mode == 'copy' else move
    try:
        target_dir = os.path.join(settings.MEDIA_ROOT, get_path(request))
        for path in paths:
            source_path = os.path.join(settings.MEDIA_ROOT, drop_path_base(path))
            verify_path(source_path)
            file_name = [part for part in path.split('/') if part][-1]
            target_path = os.path.join(target_dir, file_name)
            while os.path.exists(target_path):
                file_name = '_' + file_name
                target_path = os.path.join(target_dir, file_name)
            verify_path(target_path)
            method(source_path, target_path)
    except Exception, e:
        logging.exception('Error in paste_view')
        return HttpResponse(unicode(e))