File Exists Test

This commit is contained in:
Holger Trampe 2021-10-23 17:09:44 +02:00
parent e42a4bb3e2
commit 1fad8d911c
1 changed files with 33 additions and 30 deletions

View File

@ -303,37 +303,40 @@ import os
def NCAddFiles(request): def NCAddFiles(request):
if request.method == "GET": if request.method == "GET":
agency = Agency.objects.get(pk=request.GET.get('agencyid')) agency = Agency.objects.get(pk=request.GET.get('agencyid'))
file_to_load = DataFile.objects.get(pk=request.GET.get('fileid')) if(DataFile.objects.filter(pk=request.GET.get('fileid')).exists()):
datadir_parent = None file_to_load = DataFile.objects.get(pk=request.GET.get('fileid'))
datadir_parent_dirnames = [] datadir_parent = None
if(file_to_load.parent != None): datadir_parent_dirnames = []
datadir_parent = file_to_load.parent if(file_to_load.parent != None):
datadir_parent_dirnames = [file_to_load.parent.name] datadir_parent = file_to_load.parent
datadir_parent_dirnames = [file_to_load.parent.name]
while(datadir_parent.parent != None):
datadir_parent_dirnames.append(datadir_parent.parent.name)
datadir_parent = datadir_parent.parent
## Popping last Element
d_prestring = ""
if(len(datadir_parent_dirnames) > 0):
datadir_parent_dirnames.pop(len(datadir_parent_dirnames)-1)
# Turning Array around
datadir_parent_dirnames = datadir_parent_dirnames[::-1]
# Dirs needed for the File while(datadir_parent.parent != None):
for d in datadir_parent_dirnames: datadir_parent_dirnames.append(datadir_parent.parent.name)
new_folder = d_prestring + "/" +d datadir_parent = datadir_parent.parent
r = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_" + str(agency.pk)+ '/' + new_folder, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) ## Popping last Element
d_prestring += "/" + d d_prestring = ""
if(len(datadir_parent_dirnames) > 0):
# Uplod the file! datadir_parent_dirnames.pop(len(datadir_parent_dirnames)-1)
final_file_path = settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_"+ str(agency.pk) + "/" + d_prestring + "/" + file_to_load.name # Turning Array around
with open(file_to_load.file.path, 'rb') as f: datadir_parent_dirnames = datadir_parent_dirnames[::-1]
r = requests.put(final_file_path, data=f, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API))
if(len(r.text) == 0): # Dirs needed for the File
return JsonResponse({'status' : True, 'message': 'Datei ' + file_to_load.name + ' angelegt.'}) for d in datadir_parent_dirnames:
else: new_folder = d_prestring + "/" +d
return JsonResponse({'status' : True, 'message': 'Datei ' + file_to_load.name + ' konnte nicht angelegt. Bitte manuell prüfen!'}) r = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_" + str(agency.pk)+ '/' + new_folder, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API))
d_prestring += "/" + d
# Uplod the file!
final_file_path = settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_"+ str(agency.pk) + "/" + d_prestring + "/" + file_to_load.name
with open(file_to_load.file.path, 'rb') as f:
r = requests.put(final_file_path, data=f, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API))
if(len(r.text) == 0):
return JsonResponse({'status' : True, 'message': 'Datei ' + file_to_load.name + ' angelegt.'})
else:
return JsonResponse({'status' : True, 'message': 'Datei ' + file_to_load.name + ' konnte nicht angelegt. Bitte manuell prüfen!'})
else:
return JsonResponse({'status' : True, 'message': 'Datei ' + str(request.GET.get('fileid')) + ' konnte nicht in Django gefunden werden. Bitte manuell prüfen!'})
return JsonResponse({"status" : "NO AUTH"}) return JsonResponse({"status" : "NO AUTH"})