<%@ LANGUAGE = JavaScript %> <% /* $Revision$ $Id$ File: upploadform_save.asp Description: Opvangscript van uploadform.asp Parameters: extfilter extensie filter pkey ALG_RUIMTE_KEY of ... pModule "ALG" of ... pKenmerk_key ALG_KENMERK_KEY of ... Context: Vanuit uploadform.asp Note: Na submit sluiten we onzelf Met TAMPER bescherming! */ if (Server.ScriptTimeout < 600) Server.ScriptTimeout = 600; // 10 minuten moet echt genoeg zijn %> <% protectQS.verify(); // tamper check FCLTHeader.Requires({ plugins:["jQuery"] }); var pKey = getQParamInt("key", -1); var pNiveau = getQParamSafe("niveau", ""); var pModule = getQParamSafe("module"); 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" regFilter = params.extFilter; regFilter = regFilter.replace(/( |,|;)/g,"|"); // Altijd | karakter regFilter = ".*\\." + "(" + regFilter + ")$"; // er moet een punt voor en extensie is aan het einde } %> <% FCLTHeader.Generate(); __Log("Opslaan onder: " + params.AttachPath); var found_files = []; var found_fields = {}; function iso8601Date(jsDate) { var str = padout(jsDate.getFullYear()) + padout(jsDate.getMonth() + 1) + padout(jsDate.getDate()) + "T" + padout(jsDate.getHours()) + padout(jsDate.getMinutes()) + padout(jsDate.getSeconds()); return str; } function js_add_file(name, data, contenttype, counter) { var safename = safe.filename(name.split("\\")[name.split("\\").length - 1]); // eventuele padnaam eraf __Log("Upload file: " + name + " is safe: " + safename); // iPad/IPhone uploaden directe foto altijd als 'Image.jpg' wat erg lastig is if (safename.match(/image.jpg/i) || safename.match(/image.jpeg/i) || safename.match(/image.png/i)) { // Bij gelijktijdig uploaden van bestanden is een timestamp op seconde niet toereikend. // We doen de teller er ook nog maar bij. var ext = safename.split(".")[safename.split(".").length - 1]; safename = "Image_{0}{1}.{2}".format(iso8601Date(new Date), counter>0?"_" + counter:"", ext); __DoLog("-->Ios: " + safename); } found_files.push({ name: safename, data: data, contenttype: contenttype}); } function js_add_field(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 (msg ? " (" + filename +": " + msg + ")" : ""); } var VB_result = VB_getfiles(); var result = { message: VB_result("message"), safefilename: [] }; //__Log(found_fields); //__Log(found_files); protectRequest.validateToken(found_fields["__RequestVerificationToken"]); // Obscuur: hier geen 'i' gebruiken omdat upload.inc/ getString die ook al gebruikt // 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); 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); } for (j=0; j1) { result.message += L("lcl_shared_upload_toomany"); } else { var fso = Server.CreateObject("Scripting.FileSystemObject") var f = fso.GetFolder(params.AttachPath); for (fc = new Enumerator(f.files); !fc.atEnd(); fc.moveNext()) { var vFileName = fc.item().Name; if (vFileName != result.safefilename[0]) { __Log("Autodelete: " + params.AttachPath + vFileName) DeleteFile(params.AttachPath + vFileName); } } } } if (result.message && result.message != "") { result.message = L("lcl_shared_upload_error_start") + result.message + L("lcl_shared_upload_error_end"); } else { checkWebconfig(params.AttachRootPath); for (j=0; j w * oIMG.Height) h = oIMG.Height / oIMG.Width * w; else w = oIMG.Width / oIMG.Height * h; } if (oIMG.Height < h || oIMG.Width < w) // Zou er iets vergroot gaan worden. { if (RrCc == "R" || RrCc == "C") // Dan zijn we streng en eisen we minimale afmeting { result.message = L("lcl_shared_photo_small").format(h0, w0, oIMG.Height, oIMG.Width); DeleteFile(params.AttachPath + result_safefilename); } else // Dan maar niet, we vergtoten niet. { h = oIMG.Height; w = oIMG.Width; } } if (!result.message && (oIMG.Height != h || oIMG.Width != w)) { try { __Log("Resize/Cropping from w=" + oIMG.Width + " h=" + oIMG.Height + " to w=" + w + " h=" + h); oIMG.Width = w; oIMG.Height = h; oIMG.SaveAs(params.AttachPath + result_safefilename); } catch (e) { result.message = L("lcl_shared_thumbnail_error") + e.description; // Gewoon opruimen DeleteFile(params.AttachPath + result_safefilename); } } } } if (!result.message) switch(pModule) { case "SML": // Thumb altijd try { maxThumbW = 60; maxThumbH = 80; if (oIMG.Width / oIMG.Height > maxThumbW / maxThumbH) { oIMG.Height = oIMG.Height / oIMG.Width * maxThumbW; oIMG.Width = maxThumbW; } else { oIMG.Width = oIMG.Width / oIMG.Height * maxThumbH; oIMG.Height = maxThumbH; } CreateFullPath(params.AttachPath + "thumb/"); oIMG.SaveAs(params.AttachPath + "thumb/" + result_safefilename); } catch (e) { result.message = L("lcl_shared_thumbnail_error") + e.description; DeleteFile(params.AttachPath + "thumb/" + result_safefilename); } break; case "FGII": // Direct scannen nu, indien dwf bestand. Tekening kan vaker gebruikt worden. var sql = "SELECT cad_tekening_key" + " FROM cad_tekening" + " WHERE cad_tekening_filenaam || '.dwf' = " + safe.quoted_sql(result_safefilename); var oRs = Oracle.Execute(sql); while (!oRs.eof) { var cad_tek_key = oRs("cad_tekening_key").value; result.message = scanDWF(cad_tek_key, 1); oRs.MoveNext(); } break; } } } %> <% Response.End; %>