|
@@ -6,6 +6,8 @@ from django.contrib.auth.decorators import login_required
|
|
|
from file.models import File
|
|
from file.models import File
|
|
|
from django.http import FileResponse, JsonResponse, HttpResponse
|
|
from django.http import FileResponse, JsonResponse, HttpResponse
|
|
|
from django.utils import timezone
|
|
from django.utils import timezone
|
|
|
|
|
+
|
|
|
|
|
+from folder.models import Folder
|
|
|
from .judgement_function import judge_filepath, format_size
|
|
from .judgement_function import judge_filepath, format_size
|
|
|
from django.utils.http import urlquote
|
|
from django.utils.http import urlquote
|
|
|
from django.contrib.auth.models import User
|
|
from django.contrib.auth.models import User
|
|
@@ -26,19 +28,18 @@ DEBUG = 1
|
|
|
@login_required
|
|
@login_required
|
|
|
def upload_file(request):
|
|
def upload_file(request):
|
|
|
if request.method == "POST":
|
|
if request.method == "POST":
|
|
|
- data = request.POST
|
|
|
|
|
- file_obj = request.FILES.get('file')
|
|
|
|
|
|
|
+ file_obj = request.FILES.get('upload')
|
|
|
file_type = judge_filepath(file_obj.name.split('.')[-1].lower())
|
|
file_type = judge_filepath(file_obj.name.split('.')[-1].lower())
|
|
|
file_folder = request.POST.get('file_path')
|
|
file_folder = request.POST.get('file_path')
|
|
|
update_time = timezone.now().strftime("%Y-%m-%d %H:%M:%S")
|
|
update_time = timezone.now().strftime("%Y-%m-%d %H:%M:%S")
|
|
|
file_size = format_size(file_obj.size)
|
|
file_size = format_size(file_obj.size)
|
|
|
file_name = file_obj.name
|
|
file_name = file_obj.name
|
|
|
save_path = BASE_DIR + '/' + file_folder
|
|
save_path = BASE_DIR + '/' + file_folder
|
|
|
- file_path = file_folder + '/' + file_name
|
|
|
|
|
|
|
+ file_path = file_folder + file_name
|
|
|
file_id_1 = ''.join(random.sample(string.digits, 8))
|
|
file_id_1 = ''.join(random.sample(string.digits, 8))
|
|
|
File.objects.create(file_id=file_id_1,
|
|
File.objects.create(file_id=file_id_1,
|
|
|
file_name=file_name,
|
|
file_name=file_name,
|
|
|
- folder=file_folder,
|
|
|
|
|
|
|
+ folder=Folder.objects.filter(folder_id=request.POST.get('folder_id')).get(),
|
|
|
file_path=file_path,
|
|
file_path=file_path,
|
|
|
update_time=update_time,
|
|
update_time=update_time,
|
|
|
file_size=file_size,
|
|
file_size=file_size,
|
|
@@ -57,7 +58,8 @@ def upload_file(request):
|
|
|
@login_required
|
|
@login_required
|
|
|
def download_file(request):
|
|
def download_file(request):
|
|
|
if request.method == "POST":
|
|
if request.method == "POST":
|
|
|
- file_path = request.GET.get('file_path')
|
|
|
|
|
|
|
+ print(request)
|
|
|
|
|
+ file_path = request.POST.get('file_path')
|
|
|
file_name = file_path.split('/')[-1]
|
|
file_name = file_path.split('/')[-1]
|
|
|
file_dir = BASE_DIR + '/' + file_path
|
|
file_dir = BASE_DIR + '/' + file_path
|
|
|
file = open(file_dir, 'rb')
|
|
file = open(file_dir, 'rb')
|
|
@@ -75,13 +77,23 @@ def download_file(request):
|
|
|
@login_required
|
|
@login_required
|
|
|
def delete_file(request):
|
|
def delete_file(request):
|
|
|
if request.method == "POST":
|
|
if request.method == "POST":
|
|
|
- file_path = request.GET.get('file_path')
|
|
|
|
|
- File.objects.get(file_path=file_path, file_id=request.File.file_id).delete()
|
|
|
|
|
|
|
+ data = request.POST
|
|
|
|
|
+ file_path = data.get('file_path')
|
|
|
try:
|
|
try:
|
|
|
- os.remove(BASE_DIR + '/' + file_path)
|
|
|
|
|
|
|
+ file = File.objects.filter(file_path=file_path, file_id=data.get('file_id')).get()
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
print(e)
|
|
print(e)
|
|
|
- return HttpResponse(status=200)
|
|
|
|
|
|
|
+ else:
|
|
|
|
|
+ if file:
|
|
|
|
|
+ file.delete()
|
|
|
|
|
+ try:
|
|
|
|
|
+ os.remove(BASE_DIR + '//' + file_path)
|
|
|
|
|
+ except Exception as e:
|
|
|
|
|
+ print(e)
|
|
|
|
|
+ return HttpResponse(status=200)
|
|
|
|
|
+
|
|
|
|
|
+ else:
|
|
|
|
|
+ return HttpResponse(status=421)
|
|
|
elif request.method == 'GET':
|
|
elif request.method == 'GET':
|
|
|
if DEBUG:
|
|
if DEBUG:
|
|
|
return render(request, 'delete_file.html')
|
|
return render(request, 'delete_file.html')
|