Uploaderror Large Type und Doppelt

This commit is contained in:
Holger Trampe 2021-10-18 09:36:31 +02:00
parent f8b10b9ec8
commit 6977dc51f7
2 changed files with 45 additions and 27 deletions

View File

@ -164,12 +164,10 @@
<!-- TODO: Upload ins richtige Verzeichnis-->
<input type="file" id="uploadedfile" name="uploadedfile" style="display:none">
{% if user|usergperm:"filesmanager" %}
<div class="alert alert-secondary text-center mt-5" id="directdiv" role="alert" style="line-height: 17px; text-align: center;">
<button type="button" class="btn btn-primary btn-sm" id="uploadButton" onclick="javascript:uploadButtonPush()"><i class="fas fa-plus"></i></button>&nbsp;&nbsp;<small>klicken/hineinziehen<p class="mt-2">Dateien werden im Verzeichnis <b>Agenturdaten/Standards Uploadbereich </b> gespeichert.
</small></p>
</div>
{% endif %}
</div>
</div>
</div>
@ -269,13 +267,13 @@
<div class="modal-dialog " role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLongTitle">Datei nicht erlaubt</h5>
<h5 class="modal-title" id="exampleModalLongTitle">Fehler beim Upload</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Schließen">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
Diesen Dateitypen dürfen Sie nicht hochladen.
Die Datei wurde nicht hochgeladen! Bitte prüfen Sie die erlaubten Dateitypen, die maximale Dateigröße und ob die Datei im Ordner <b>Standards Uploadbereich</b> bereits vorhanden ist.
</div>
<div class="modal-footer">
<button type="button" class="btn btn-success" data-dismiss="modal">Schließen</button>
@ -1240,7 +1238,7 @@ function doUploadAction(filetodo, replacestat){
processData: false,
contentType: false,
beforeSend: function(){
$("#uploadModalProgress").modal("toggle");
$("#uploadModalProgress").modal("show");
},
xhr: function() {
var xhr = new window.XMLHttpRequest();
@ -1253,7 +1251,7 @@ function doUploadAction(filetodo, replacestat){
return xhr;
},
success: function(data) {
console.log(data);
if(data["success"] == true){
setTimeout(function(){
hideUpload();
@ -1264,12 +1262,22 @@ function doUploadAction(filetodo, replacestat){
}, 1000);
}
else{
$("#forbiddenFileType").modal("toggle")
setTimeout(function(){
hideUpload();
$("#forbiddenFileType").modal("toggle");
}, 1000);
}
},
error: function(){
setTimeout(function(){
hideUpload();
$("#forbiddenFileType").modal("toggle");
}, 1000);
}
});
}
else{
hideUpload();
$("#forbiddenFileType").modal("toggle")
}
}

View File

@ -825,7 +825,6 @@ def StandardChangePublic(request, pk):
standard.save()
return redirect('standards')
# TODO: Upload der Standard-Dateien passt noch nicht, BUG!!!!
@login_required
def StandardSingle(request, pk):
@ -1218,23 +1217,34 @@ def uploadFileFromStandard(request):
if(file_ok):
final_file_path = settings.NEXTCLOUD_URL + "remote.php/dav/files/" + request.user.username + "/Agenturdaten/Standards Uploadbereich/" + request.FILES['uploadedfile'].name
r = requests.put(final_file_path, data=request.FILES['uploadedfile'], headers={'Content-Type' : 'text/xml;', 'Authorization' : "Bearer " + request.user.profile.nc_sid})
if(len(r.text) == 0):
try:
new_file_name = request.FILES['uploadedfile'].name
# Upload OK - get File-ID in NC
filesearchdata = '<?xml version="1.0" encoding="UTF-8"?><d:searchrequest xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns"><d:basicsearch><d:select><d:prop><oc:fileid/></d:prop></d:select><d:from><d:scope><d:href>/files/' + request.user.username + '</d:href><d:depth>infinity</d:depth></d:scope></d:from><d:where><d:like><d:prop><d:displayname/></d:prop><d:literal>' + new_file_name + '</d:literal></d:like></d:where></d:basicsearch></d:searchrequest>'
r = requests.request("SEARCH", settings.NEXTCLOUD_URL + "remote.php/dav/", data=filesearchdata, headers={'Content-Type' : 'text/xml;', 'Authorization' : "Bearer " + request.user.profile.nc_sid})
#print(r.text)
split_response = r.text.split("<oc:fileid>")
new_id = split_response[1].split("</oc:fileid>")[0]
# Check if File already exist
try:
new_file_name = request.FILES['uploadedfile'].name
filesearchdata = '<?xml version="1.0" encoding="UTF-8"?><d:searchrequest xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns"><d:basicsearch><d:select><d:prop><oc:fileid/></d:prop></d:select><d:from><d:scope><d:href>/files/' + request.user.username + '</d:href><d:depth>infinity</d:depth></d:scope></d:from><d:where><d:like><d:prop><d:displayname/></d:prop><d:literal>' + new_file_name + '</d:literal></d:like></d:where></d:basicsearch></d:searchrequest>'
r = requests.request("SEARCH", settings.NEXTCLOUD_URL + "remote.php/dav/", data=filesearchdata, headers={'Content-Type' : 'text/xml;', 'Authorization' : "Bearer " + request.user.profile.nc_sid})
#print(r.text)
split_response = r.text.split("<oc:fileid>")
new_id = split_response[1].split("</oc:fileid>")[0]
return JsonResponse({"success" : False, "data" : "file exist"})
except:
# File will be uploaded
r = requests.put(final_file_path, data=request.FILES['uploadedfile'], headers={'Content-Type' : 'text/xml;', 'Authorization' : "Bearer " + request.user.profile.nc_sid})
if(len(r.text) == 0):
try:
new_file_name = request.FILES['uploadedfile'].name
# Upload OK - get File-ID in NC
filesearchdata = '<?xml version="1.0" encoding="UTF-8"?><d:searchrequest xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns"><d:basicsearch><d:select><d:prop><oc:fileid/></d:prop></d:select><d:from><d:scope><d:href>/files/' + request.user.username + '</d:href><d:depth>infinity</d:depth></d:scope></d:from><d:where><d:like><d:prop><d:displayname/></d:prop><d:literal>' + new_file_name + '</d:literal></d:like></d:where></d:basicsearch></d:searchrequest>'
r = requests.request("SEARCH", settings.NEXTCLOUD_URL + "remote.php/dav/", data=filesearchdata, headers={'Content-Type' : 'text/xml;', 'Authorization' : "Bearer " + request.user.profile.nc_sid})
#print(r.text)
split_response = r.text.split("<oc:fileid>")
new_id = split_response[1].split("</oc:fileid>")[0]
tf = NCFile(agency=request.user.profile.agency, nc_id=new_id)
tf.save()
return JsonResponse({"success" : success, "data" : {'savedobj_id' : new_id, 'savedobj_name' : new_file_name}})
except:
success = True
return JsonResponse({"success" : success, "data" : {'savedobj_id' : None, 'savedobj_name' : 'Datei hochgeladen, enthält aber falsche Zeichen. Bitte Seite neu laden und anschließend über Suchfeld hinzufügen.'}})
tf = NCFile(agency=request.user.profile.agency, nc_id=new_id)
tf.save()
return JsonResponse({"success" : success, "data" : {'savedobj_id' : new_id, 'savedobj_name' : new_file_name}})
except:
success = True
return JsonResponse({"success" : success, "data" : {'savedobj_id' : None, 'savedobj_name' : 'Datei hochgeladen, enthält aber falsche Zeichen. Bitte speichern Sie den Standard, laden die Seite ne und binden die Datei danach ein.'}})
return JsonResponse({"success" : success, "data" : "DONE!"})