Skip to content

Commit a30d08f

Browse files
save file
1 parent dd5063d commit a30d08f

File tree

5 files changed

+31
-8
lines changed

5 files changed

+31
-8
lines changed

file_controller.cc

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ std::string shell_commons(const char* cmd) {
2323
return result;
2424
}
2525

26-
std::string genTree(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
26+
void genTree(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
2727
{
2828
char *pathvar;
2929
pathvar = getenv("PWD");
@@ -32,9 +32,8 @@ std::string genTree(const HttpRequestPtr &req, std::function<void(const HttpResp
3232
res->addHeader("Access-Control-Allow-Origin", "*");
3333
res ->setBody(result);
3434
callback(res);
35-
return result;
3635
}
37-
std::string catFile(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
36+
void catFile(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
3837
{
3938
char *pathvar;
4039
pathvar = getenv("PWD");
@@ -44,5 +43,25 @@ std::string catFile(const HttpRequestPtr &req, std::function<void(const HttpResp
4443
res->addHeader("Access-Control-Allow-Origin", "*");
4544
res ->setBody(result);
4645
callback(res);
47-
return result;
46+
}
47+
void saveFile(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
48+
{
49+
auto body = req->getBody();
50+
Json::Value req_json;
51+
Json::Reader reader;
52+
std::string bodyStr(body);
53+
if (!reader.parse(bodyStr, req_json)) {
54+
std::cout<<"parse failed"<<std::endl;
55+
callback(HttpResponse::newHttpResponse());
56+
return;
57+
}
58+
char *pathvar;
59+
pathvar = getenv("PWD");
60+
std::string filename = req_json["filename"].asString();
61+
std::string content = req_json["content"].asString();
62+
std::string result = shell_commons(("echo '"+content+"'>"+std::string(pathvar)+"/../root/"+filename).c_str()) ;
63+
auto res = HttpResponse::newHttpResponse();
64+
res->addHeader("Access-Control-Allow-Origin", "*");
65+
res ->setBody("success");
66+
callback(res);
4867
}

file_controller.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
#include <drogon/drogon.h>
55
using namespace drogon;
66
std::string shell_commons(const char* cmd);
7-
std::string genTree(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
8-
std::string catFile(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
7+
void genTree(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
8+
void catFile(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
9+
void saveFile(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
910
//std::string
1011
#endif

main.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,12 @@ int main() {
3636
});
3737
drogon::app().registerHandler("/api/file/cat", [](const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback) {
3838
catFile(req, std::move(callback));
39+
});
40+
drogon::app().registerHandler("/api/file/save", [](const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback) {
41+
saveFile(req, std::move(callback));
3942
});
4043
drogon::app().registerHandler("/api/avatar", [](const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback) {
4144
avatar(req, std::move(callback));
42-
4345
});
4446
drogon::app().run();
4547
return 0;

root/lgy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
# this is lgy file
1+
123

root/lj/lljj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
666

0 commit comments

Comments
 (0)