|
|
@@ -22,16 +22,16 @@ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
|
def upload_file(request):
|
|
|
user = get_user(request)
|
|
|
try:
|
|
|
- file_obj = request.FILES.get('upload')
|
|
|
+ file_obj = request.FILES.get('file')
|
|
|
except:
|
|
|
return make_json_response(code=401, error='文件不存在')
|
|
|
- file_type = judge_filepath(file_obj.name.split('.')[-1].lower()) if '.' in file_obj.name else ''
|
|
|
update_time = timezone.now().strftime("%Y-%m-%d %H:%M:%S")
|
|
|
file_size = file_obj.size
|
|
|
file_name = file_obj.name
|
|
|
- folder_id = request.POST.get('folder_id')
|
|
|
+ file_type = judge_filepath(file_name.split('.')[-1].lower()) if '.' in file_name else ''
|
|
|
+ father_folder_id = request.POST.get('father_folder_id')
|
|
|
try:
|
|
|
- folder = Folder.objects.get(folder_id=folder_id)
|
|
|
+ folder = Folder.objects.get(folder_id=father_folder_id)
|
|
|
except:
|
|
|
return make_json_response(code=402, error='文件夹不存在')
|
|
|
if not folder.check_permission(user=user):
|
|
|
@@ -53,6 +53,52 @@ def upload_file(request):
|
|
|
file.delete()
|
|
|
return make_json_response(code=500, error='文件保存失败')
|
|
|
return make_json_response()
|
|
|
+ if request.method == "POST":
|
|
|
+ user = get_user(request)
|
|
|
+ try:
|
|
|
+ file_obj = request.FILES.get('file')
|
|
|
+ print(file_obj)
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ print('文件不存在')
|
|
|
+ return JsonResponse({'code': 401, 'error': '文件不存在'})
|
|
|
+ update_time = timezone.now().strftime("%Y-%m-%d %H:%M:%S")
|
|
|
+ file_size = file_obj.size
|
|
|
+ file_name = file_obj.name
|
|
|
+ file_type = judge_filepath(file_name.split('.')[-1].lower()) if '.' in file_name else ''
|
|
|
+ father_folder_id = request.POST.get('father_folder_id')
|
|
|
+ print(f'file_name={file_name}, father_folder_id={father_folder_id}')
|
|
|
+ try:
|
|
|
+ father_folder = Folder.objects.get(folder_id=father_folder_id)
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ print('文件夹不存在')
|
|
|
+ return JsonResponse({'code': 402, 'error': '文件夹不存在'})
|
|
|
+ if not father_folder.check_permission(user=user):
|
|
|
+ print('没有上传文件的权限')
|
|
|
+ return JsonResponse({'code': 404, 'error': '没有上传文件的权限'})
|
|
|
+ file = File.objects.create(file_name=file_name,
|
|
|
+ father_folder=father_folder,
|
|
|
+ update_time=update_time,
|
|
|
+ file_size=file_size,
|
|
|
+ file_type=file_type,
|
|
|
+ owner=user,
|
|
|
+ group=father_folder.group)
|
|
|
+ # TODO: 文件hash
|
|
|
+ try:
|
|
|
+ file_dir = BASE_DIR + '/' + str(file.file_id)
|
|
|
+ with open(file_dir, 'wb+') as f:
|
|
|
+ for chunk in file_obj.chunks():
|
|
|
+ f.write(chunk)
|
|
|
+ except:
|
|
|
+ print('文件保存失败')
|
|
|
+ file.delete()
|
|
|
+ return JsonResponse({'code': 500, 'error': '文件保存失败'})
|
|
|
+ return JsonResponse({'code': 200})
|
|
|
+ elif request.method == 'GET' and DEBUG:
|
|
|
+ return render(request, 'upload_file.html')
|
|
|
+ else:
|
|
|
+ return HttpResponse(status=400)
|
|
|
|
|
|
|
|
|
@debug_view('username', 'token', 'file_id')
|