[mapguide-commits] r9684 - sandbox/jng/ogc_viewer_representation/Web/src/DevHttpServer
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Fri Jul 24 04:01:42 PDT 2020
Author: jng
Date: 2020-07-24 04:01:41 -0700 (Fri, 24 Jul 2020)
New Revision: 9684
Modified:
sandbox/jng/ogc_viewer_representation/Web/src/DevHttpServer/main.cpp
Log:
DevHttpServer: Add file upload support, needed by mapagent operations like APPLYRESOURCEPACKAGE
Modified: sandbox/jng/ogc_viewer_representation/Web/src/DevHttpServer/main.cpp
===================================================================
--- sandbox/jng/ogc_viewer_representation/Web/src/DevHttpServer/main.cpp 2020-07-23 15:42:41 UTC (rev 9683)
+++ sandbox/jng/ogc_viewer_representation/Web/src/DevHttpServer/main.cpp 2020-07-24 11:01:41 UTC (rev 9684)
@@ -147,11 +147,27 @@
param->AddParameter(key, value);
}
- //TODO: Handle files
for (const auto& f : req.files)
{
STRING key = MgUtil::MultiByteToWideChar(f.first);
-
+ auto file = f.second;
+ if (file.filename.empty())
+ {
+ STRING value = MgUtil::MultiByteToWideChar(file.content);
+ param->AddParameter(key, value);
+ }
+ else
+ {
+ STRING fileName = MgFileUtil::GenerateTempFileName();
+ Ptr<MgByteSource> byteSource = new MgByteSource((BYTE_ARRAY_IN)file.content.c_str(), (INT32)file.content.length());
+ Ptr<MgByteReader> reader = byteSource->GetReader();
+ Ptr<MgByteSink> sink = new MgByteSink(reader);
+ sink->ToFile(fileName);
+
+ param->AddParameter(key, fileName);
+ //tempfile is a hint to the MgHttpRequest for it to create a MgByteSource from it
+ param->SetParameterType(key, L"tempfile");
+ }
}
}
More information about the mapguide-commits
mailing list