From 0acf49c43772e42a9cf65a4d42f66249b2b4962c Mon Sep 17 00:00:00 2001 From: Erik Groener Date: Wed, 7 Sep 2016 11:31:36 +0000 Subject: [PATCH] ASDL#37188 Logboek NS: Mogelijkheid om meerdere foto's tergelijk opsturen svn path=/Website/trunk/; revision=30611 --- APPL/Shared/UploadForm_save.asp | 126 ++++++++++++++++++++++---------- 1 file changed, 86 insertions(+), 40 deletions(-) diff --git a/APPL/Shared/UploadForm_save.asp b/APPL/Shared/UploadForm_save.asp index f430431a56..f1dd8d4cfd 100644 --- a/APPL/Shared/UploadForm_save.asp +++ b/APPL/Shared/UploadForm_save.asp @@ -37,11 +37,12 @@ var pKenmerk_key = getQParamInt("kenmerk_key", -1); var pAlgLevel = getQParam("kenmerk_module", ""); var params = flexProps(pModule, pKey, String(pKenmerk_key), pNiveau, {alglevel: pAlgLevel}); - +var doEncrypt = (params.encrypt? 1 : 0); +var regFilter = null; if (params.extFilter) { // extFilter="pdf,tiff" of "pdf tiff" of "pdf;tiff" - var regFilter = params.extFilter; + regFilter = params.extFilter; regFilter = regFilter.replace(/( |,|;)/g,"|"); // Altijd | karakter regFilter = ".*\\." + "(" + regFilter + ")$"; // er moet een punt voor en extensie is aan het einde } @@ -63,12 +64,31 @@ function jslog(str) // VB Vindt de twee underscores niet leuk function js_add_file(name, data, contenttype) { - found_files.push({ name: name, data: data, contenttype: contenttype}); + found_files.push({ name: name, data: data, contenttype: contenttype}); } function js_add_field(name, data) { - found_fields[name] = data; + found_fields[name] = data; + } + + function check_filename(pinfo) + { + var filename = safe.filename(pinfo.name); + var msg = ""; + if (filename == "" || pinfo.data == "") + { + msg = "Empty file or name?"; + } + else if (regFilter && (!new RegExp(regFilter, "ig").test(filename))) + { + msg = L("lcl_shared_file_ext_invalid_start") + params.extFilter + L("lcl_shared_file_ext_invalid_end"); + } + else if (!new RegExp(S("flexAllowedExt"), "ig").test(filename)) + { + msg = L("lcl_shared_file_ext_not_allowed"); + } + return " (" + filename +": " + msg + ")"; } var VB_result = VB_getfiles(); @@ -85,46 +105,62 @@ function jslog(str) // VB Vindt de twee underscores niet leuk // Je krijgt daar dan 'Illegal Assignment', ik verzin het niet for (var j = 0; j < found_files.length; j++) { - var finfo = found_files[j]; - var safefilename = safe.filename(finfo.name); - result.safefilename.push(safefilename); - var BinaryStream = Server.CreateObject("ADODB.Stream"); - BinaryStream.Type = 1; // adTypeBinary - BinaryStream.Open(); - try - { - BinaryStream.Write(finfo.data); - // Save binary data To disk - __Log("Saving to: " + params.AttachPath + safefilename); - CreateFullPath(params.AttachPath); - BinaryStream.SaveToFile(params.AttachPath + safefilename, 2); // adSaveCreateOverWrite - } - catch(e) - { - HELP; - } + var finfo = found_files[j]; + var safefilename = safe.filename(finfo.name); + var msg = check_filename(finfo); + + if (msg == "") + { + result.safefilename.push(safefilename); + if (doEncrypt) // Wordt (nog) niet gebruikt. + { + var oZip = Server.CreateObject("SLNKDWF.Zip"); + oZip.Open(fullpath + safefilename + ".encrypted"); + oZip.EncryptFromString(safefilename, finfo.data); + } + else + { + var BinaryStream = Server.CreateObject("ADODB.Stream"); + BinaryStream.Type = 1; // adTypeBinary + BinaryStream.Open(); + try + { + BinaryStream.Write(finfo.data); + // Save binary data To disk + __Log("Saving to: " + params.AttachPath + safefilename); + CreateFullPath(params.AttachPath); + BinaryStream.SaveToFile(params.AttachPath + safefilename, 2); // adSaveCreateOverWrite + } + catch(e) + { + HELP; + } + } + } + else + result.message += msg; } //__Log(result); // Toevoegen bijlage/bestand tracken. if (pKey > -1 && params.trackcode && (params.kenmerktype == "E" || params.kenmerktype == "F" || params.kenmerktype == "M")) { - if (pModule == "BEZ") - { // Voor afpraken heb ik de afspraak key nodig i.p.v. de bezoekerskey om de kenmerk omschrijving te bepalen. - var sql = "SELECT bez_afspraak_key" - + " FROM bez_bezoekers" - + " WHERE bez_bezoekers_key = " + pKey; - oRs = Oracle.Execute(sql); - var afspr_key = oRs("bez_afspraak_key").Value; - oRs.close(); - pKey = String(afspr_key); - } + if (pModule == "BEZ") + { // Voor afpraken heb ik de afspraak key nodig i.p.v. de bezoekerskey om de kenmerk omschrijving te bepalen. + var sql = "SELECT bez_afspraak_key" + + " FROM bez_bezoekers" + + " WHERE bez_bezoekers_key = " + pKey; + oRs = Oracle.Execute(sql); + var afspr_key = oRs("bez_afspraak_key").Value; + oRs.close(); + pKey = String(afspr_key); + } - for (j=0; j Dim UploadRequest Public Function iso8601Date(dt) + Dim s s = datepart("yyyy",dt) s = s & RIGHT("0" & datepart("m",dt),2) s = s & RIGHT("0" & datepart("d",dt),2) @@ -312,7 +349,7 @@ Public Function VB_getfiles() ' Vul via de (Javascipt) functie js_add_field de globale found_fields ' met de hidden form-fields uit de header - Dim ur_key, i, var_naam, var_waarde + Dim ur_key, i, var_naam, var_waarde, var_filename, var_data ur_key = UploadRequest.Keys for i = 0 To UploadRequest.Count -1 var_naam = ur_key(i) @@ -321,8 +358,17 @@ Public Function VB_getfiles() ' En dan nu nog de bestanden.. contentType = UploadRequest.Item(var_naam).Item("ContentType") filepathname = UploadRequest.Item(var_naam).Item("FileName") - value = MultiByteToBinary(UploadRequest.Item(var_naam).Item("Value")) - js_add_file filepathname, value, contentType + var_filename = safe.filename(Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))) '" //syntaxhighlight correctie + jslog "File: " & filepathname & " safe: " & var_filename + + '' iPad/IPhone uploaden directe foto altijd als 'Image.jpg' wat erg lastig is + If LCase(var_filename) = "image.jpg" Or LCase(var_filename) = "image.jpeg" Then + var_filename = "Image " + iso8601Date(Now) + ".jpg" + jslog "-->Ios: " & var_filename + End If + + var_data = MultiByteToBinary(UploadRequest.Item(var_naam).Item("Value")) + js_add_file var_filename, var_data, contentType else var_waarde = UploadRequest.Item(var_naam).Item("Value") end if