正在显示
4 个修改的文件
包含
114 行增加
和
8 行删除
| ... | ... | @@ -11,6 +11,7 @@ |
| 11 | 11 | #include "dmpvectorlayerrenderer.h" |
| 12 | 12 | #include "dmpproviderregistry.h" |
| 13 | 13 | #include "libpq-fe.h" |
| 14 | +#include "clsUtil.h" | |
| 14 | 15 | |
| 15 | 16 | DmpVectorLayer::DmpVectorLayer(const std::string &path, |
| 16 | 17 | const std::string &baseName, |
| ... | ... | @@ -139,9 +140,11 @@ bool DmpVectorLayer::writejson(std::string& json) |
| 139 | 140 | } |
| 140 | 141 | //Display scale setting type="1" geometry="Point" alwaysShow="true" maxScale="0" maxScale="50000"> |
| 141 | 142 | char resultbuff[1000]; |
| 143 | + string json_source = this->source(); | |
| 144 | + DmapCore_30::clsUtil::ToJSONString(json_source); | |
| 142 | 145 | sprintf(resultbuff, |
| 143 | - R"({"workspace":"","type":"1","dbsourceid":"%s","data":"","schema":"%s","alias":"%s","name":"%s","id":"%s","filter":"%s","visible":"%s","tag":"","minScale":"%s","maxScale":"%s","geometry":"%s","alwaysShow":"%s")", | |
| 144 | - this->source().c_str(), | |
| 146 | + R"({"workspace":"","type":"1","dbsource":"%s","data":"","schema":"%s","alias":"%s","name":"%s","id":"%s","filter":"%s","visible":"%s","tag":"","minScale":"%s","maxScale":"%s","geometry":"%s","alwaysShow":"%s")", | |
| 147 | + json_source.c_str(), | |
| 145 | 148 | this->schema().c_str(), |
| 146 | 149 | this->title().c_str(), |
| 147 | 150 | this->name().c_str(), | ... | ... |
| ... | ... | @@ -587,6 +587,104 @@ namespace DmapCore_30 |
| 587 | 587 | *bValue = false; |
| 588 | 588 | } |
| 589 | 589 | |
| 590 | + | |
| 591 | + void clsUtil::ToXMLString(std::string &s) | |
| 592 | + { | |
| 593 | + const char *str1 = s.c_str(); | |
| 594 | + if (strstr(str1, "&")) | |
| 595 | + { | |
| 596 | + s = clsUtil::CharReplace(s, "&", "&"); | |
| 597 | + str1 = s.c_str(); | |
| 598 | + } | |
| 599 | + if (strstr(str1, "<")) | |
| 600 | + { | |
| 601 | + s = clsUtil::CharReplace(s, "<", "<"); | |
| 602 | + str1 = s.c_str(); | |
| 603 | + } | |
| 604 | + if (strstr(str1, ">")) | |
| 605 | + { | |
| 606 | + s = clsUtil::CharReplace(s, ">", ">"); | |
| 607 | + str1 = s.c_str(); | |
| 608 | + } | |
| 609 | + if (strstr(str1, "\"")) | |
| 610 | + { | |
| 611 | + s = clsUtil::CharReplace(s, "\"", """); | |
| 612 | + str1 = s.c_str(); | |
| 613 | + } | |
| 614 | + if (strstr(str1, "\r")) | |
| 615 | + { | |
| 616 | + s = clsUtil::CharReplace(s, "\r", ""); | |
| 617 | + str1 = s.c_str(); | |
| 618 | + } | |
| 619 | + if (strstr(str1, "\n")) | |
| 620 | + { | |
| 621 | + s = clsUtil::CharReplace(s, "\n", ""); | |
| 622 | + str1 = s.c_str(); | |
| 623 | + } | |
| 624 | + if (strstr(str1, "'")) | |
| 625 | + { | |
| 626 | + s = clsUtil::CharReplace(s, "'", "'"); | |
| 627 | + //str1=s.c_str(); | |
| 628 | + } | |
| 629 | + return; | |
| 630 | + } | |
| 631 | + | |
| 632 | + void clsUtil::ToJSONString(std::string &s) | |
| 633 | + { | |
| 634 | + const char *str1 = s.c_str(); | |
| 635 | + if (strstr(str1, "\\")) | |
| 636 | + { | |
| 637 | + s = clsUtil::CharReplace(s, "\\", "\\\\"); | |
| 638 | + str1 = s.c_str(); | |
| 639 | + } | |
| 640 | + if (strstr(str1, "/")) | |
| 641 | + { | |
| 642 | + s = clsUtil::CharReplace(s, "/", "\\/"); | |
| 643 | + str1 = s.c_str(); | |
| 644 | + } | |
| 645 | + if (strstr(str1, "\"")) | |
| 646 | + { | |
| 647 | + s = clsUtil::CharReplace(s, "\"", "\\\""); | |
| 648 | + str1 = s.c_str(); | |
| 649 | + } | |
| 650 | + if (strstr(str1, "\\r")) | |
| 651 | + { | |
| 652 | + s = clsUtil::CharReplace(s, "\\r", ""); | |
| 653 | + str1 = s.c_str(); | |
| 654 | + } | |
| 655 | + if (strstr(str1, "\\n")) | |
| 656 | + { | |
| 657 | + s = clsUtil::CharReplace(s, "\\n", ""); | |
| 658 | + str1 = s.c_str(); | |
| 659 | + } | |
| 660 | + if (strstr(str1, "\r")) | |
| 661 | + { | |
| 662 | + s = clsUtil::CharReplace(s, "\r", ""); | |
| 663 | + str1 = s.c_str(); | |
| 664 | + } | |
| 665 | + if (strstr(str1, "\n")) | |
| 666 | + { | |
| 667 | + s = clsUtil::CharReplace(s, "\n", ""); | |
| 668 | + str1 = s.c_str(); | |
| 669 | + } | |
| 670 | + if (strstr(str1, "\t")) | |
| 671 | + { | |
| 672 | + s = clsUtil::CharReplace(s, "'", "\\t"); | |
| 673 | + //str1=s.c_str(); | |
| 674 | + } | |
| 675 | + return; | |
| 676 | + } | |
| 677 | + | |
| 678 | + string clsUtil::CharReplace(string strsrc, string strfind, string strrep) | |
| 679 | + { | |
| 680 | + for(string::size_type pos(0); pos!=string::npos; pos+=strrep.length()) { | |
| 681 | + if( (pos=strsrc.find(strfind,pos))!=string::npos ) | |
| 682 | + strsrc.replace(pos,strfind.length(),strrep); | |
| 683 | + else break; | |
| 684 | + } | |
| 685 | + return strsrc; | |
| 686 | + } | |
| 687 | + | |
| 590 | 688 | std::string clsUtil::fmt(char* fmt, ...) |
| 591 | 689 | { |
| 592 | 690 | va_list argptr; | ... | ... |
| ... | ... | @@ -73,7 +73,11 @@ else { to[index]->Release(); to[index] = from; }\ |
| 73 | 73 | |
| 74 | 74 | static void GetFiles(string path, string exd, vector<string> & files); |
| 75 | 75 | static int ParseStringTok(char * sz, char toK, char ** szPtr, int maxPtr); |
| 76 | - | |
| 76 | + | |
| 77 | + static void ToJSONString(std::string &s); | |
| 78 | + static void ToXMLString(std::string &s); | |
| 79 | + static string CharReplace(string strsrc, string strfind, string strrep); | |
| 80 | + | |
| 77 | 81 | static std::string fmt(char *, ...); |
| 78 | 82 | static std::string fmt(const char*, ...); |
| 79 | 83 | static void ValueString(string * s, bool* bValue); | ... | ... |
| ... | ... | @@ -22,10 +22,9 @@ namespace DmpMapping |
| 22 | 22 | bool loadService(const DmpServerContext &context, ProjectMap& vectorMappingProjects) |
| 23 | 23 | { |
| 24 | 24 | const char *data = (char *)(context.request()->GetData()); |
| 25 | - std::string name = context.serverProject()->name(); | |
| 26 | - std::string title = context.serverProject()->title(); | |
| 25 | + | |
| 27 | 26 | |
| 28 | - if(data== nullptr || *data == '\0') | |
| 27 | + if(data== nullptr || *data == '\0' || context.request()->method() != DmpServerRequest::Method::POST_METHOD ) | |
| 29 | 28 | { |
| 30 | 29 | LOGGER_ERROR("post 参数错误"); |
| 31 | 30 | context.response()->writeJson("{\"status\":\"false\",\"message\":\"post 参数错误!\"}"); |
| ... | ... | @@ -35,12 +34,14 @@ namespace DmpMapping |
| 35 | 34 | if(!context.serverProject()) |
| 36 | 35 | { |
| 37 | 36 | LOGGER_ERROR("加载服务信息失败,服务名称是否错误"); |
| 38 | - context.response()->writeJson("{\"status\":\"false\",\"message\":\"加载服务信息失败,服务名称是否错误!\"}"); | |
| 37 | + context.response()->writeJson("{\"status\":\"false\",\"message\":\"加载服务信息失败,服务名称错误!\"}"); | |
| 39 | 38 | return false; |
| 40 | 39 | } |
| 41 | 40 | |
| 42 | 41 | try |
| 43 | 42 | { |
| 43 | + std::string name = context.serverProject()->name(); | |
| 44 | + std::string title = context.serverProject()->title(); | |
| 44 | 45 | std::stringstream stream(data); |
| 45 | 46 | boost::property_tree::ptree pt; |
| 46 | 47 | boost::property_tree::read_json(stream, pt); |
| ... | ... | @@ -105,7 +106,7 @@ namespace DmpMapping |
| 105 | 106 | |
| 106 | 107 | json.append("]}"); |
| 107 | 108 | |
| 108 | - context.response()->write( project->WriteJson()); | |
| 109 | + context.response()->writeJson( json); | |
| 109 | 110 | return true; |
| 110 | 111 | } |
| 111 | 112 | else | ... | ... |
请
注册
或
登录
后发表评论