AAIT#33877 (Flex)foto in bon kunnen gebruiken 1e aanzet

svn path=/Website/trunk/; revision=28320
This commit is contained in:
Jos Groot Lipman
2016-02-29 10:11:18 +00:00
parent 2c3a4cfd6e
commit 2a173cc9a5
2 changed files with 60 additions and 4 deletions

View File

@@ -70,7 +70,7 @@ function subfolderKey(pNiveau, pKey)
function flexProps(pModule, pKey, pSubpath, pNiveau, params)
{
params = params || {};
var result = { directlink: false };
var result = { directlink: false, files: [] };
switch (pModule)
{
case "FGII": // Facilitor Graphics
@@ -206,7 +206,6 @@ function flexProps(pModule, pKey, pSubpath, pNiveau, params)
result.AttachPath = result.AttachPath.replace("..", "_");
if (params.getFile)
{
result.files = [];
if (fso.FileExists(result.AttachPath + params.getFile))
{
var fsoFile = fso.GetFile(result.AttachPath + params.getFile);
@@ -216,7 +215,6 @@ function flexProps(pModule, pKey, pSubpath, pNiveau, params)
}
else if (params.getFiles) // Haal alle bijlagen er bij.
{
result.files = [];
if (fso.FolderExists(result.AttachPath))
{
__Log("Scanning {0} for files".format(result.AttachPath));

View File

@@ -2,6 +2,7 @@
$Revision$
$Id$
*/ %>
<!-- #include file="../shared/FlexFiles.inc" -->
<%
// Alleen nog in gebruik voor CAD/PrintFG.asp, daar nog eens uit-schrijven
@@ -64,10 +65,67 @@ function STR2Stream(xmlstr, xslfile, Stream, params)
oNode.nodeTypedValue = xc.GetAsPNG();
var b64 = oNode.text;
newbody = p_bodyhtml.substr(0, startPos - 4) + "src=\"data:image/png;base64," + b64 + "\"" + p_bodyhtml.substr(eindPos + 1);
var newbody = p_bodyhtml.substr(0, startPos - 4) + "src=\"data:image/png;base64," + b64 + "\"" + p_bodyhtml.substr(eindPos + 1);
p_bodyhtml = newbody;
}
// Nu frc-codering opzoeken <img frc="SML:34417:587:P"/>
var startPos = p_bodyhtml.indexOf("frc=") + 4;
var quote = p_bodyhtml.substr(startPos, 1);
var eindPos = p_bodyhtml.indexOf(quote, startPos + 2);
if (startPos > 4 && eindPos > startPos)
{
var flexcode = p_bodyhtml.substring(startPos + 1, eindPos);
var arr = flexcode.split(":"); // MLD:12345:587:M of SML:12345:587:P" waarbij de 581 en P don't care zijn
var pModule = arr[0]; // RESPH::::AMSG0-01-A047.JPG
if (arr.length > 1)
var pKey = parseInt(arr[1], 10);
if (arr.length > 2)
var pKenmerkKey = parseInt(arr[2], 10);
if (arr.length > 3)
var pNiveau = parseInt(arr[3], 10);
var getparams = { getFiles: true };
if (arr.length > 4)
var getparams = { getFile: arr[4] };
var params = flexProps(pModule, pKey, pKenmerkKey, pNiveau, getparams);
if (params.files.length)
{
var file = params.AttachPath + params.files[0].name;
// TODO: If goede type png/jpg
// TODO: Via SLNKDWF/ resizer? Maar hoe netjes sizing te definieren? Zie het format in UploadForm_save.asp
// of moeten we gewoon de width/height gaan parsen die je bij img src= kunt meegeven?
var oIMG = new ActiveXObject("SLNKDWF.ImageConvert");
oIMG.Open(file);
oIMG.Width = 256;
oIMG.Height = 192;
// TODO: Originele type behouden of altijd naar het compactere jpg?
var tempfile = Server.MapPath(rooturl + '/temp/img_' + customerId + '_' + Math.random(16) + ".jpg");
oIMG.SaveAs(tempfile);
var fileStream = new ActiveXObject("ADODB.Stream")
fileStream.Open();
fileStream.Type = 1; //adTypeBinary
fileStream.LoadFromFile(tempfile);
fileStream.Position = 0; // We gaan nu over in uitvoermode
var oXML = new ActiveXObject("Msxml2.DOMDocument.6.0");
oNode = oXML.createElement("encodeddata");
oNode.dataType = "bin.base64"; // Zeer snelle oplossing
oNode.nodeTypedValue = fileStream.Read(fileStream.Size);
fileStream.Close();
var fso = Server.CreateObject("Scripting.FileSystemObject")
if (Session("logging") == 0)
fso.DeleteFile(tempfile);
var b64 = oNode.text;
// TODO: Niet altijd als png, soms ook JPG, hoewel het goed lijkt te gaan in de meeste browsers
var newbody = p_bodyhtml.substr(0, startPos - 4) + "src=\"data:image/png;base64," + b64 + "\"" + p_bodyhtml.substr(eindPos + 1);
p_bodyhtml = newbody;
}
}
Stream.Write(p_bodyhtml);
if (params.log_postfix)
{