Show upload form directly in directory listing
This commit is contained in:
parent
b6a76a3d43
commit
e439138146
|
@ -89,18 +89,4 @@
|
||||||
" </ul>" \
|
" </ul>" \
|
||||||
FOOTER
|
FOOTER
|
||||||
|
|
||||||
#define UPLOAD_FORM \
|
|
||||||
HEADER1 \
|
|
||||||
" <title>Upload</title>" \
|
|
||||||
HEADER2 \
|
|
||||||
" <h1>Upload</h1>" \
|
|
||||||
" <p>You can upload a file to the current directory here.<p>" \
|
|
||||||
" <p>" \
|
|
||||||
" <form method=\"POST\" action=\".\" enctype=\"multipart/form-data\">" \
|
|
||||||
" <input name=\"data\" type=\"file\" size=\"30\">" \
|
|
||||||
" <input type=\"submit\" value=\"Go!\">" \
|
|
||||||
" </form>" \
|
|
||||||
" </p>" \
|
|
||||||
FOOTER
|
|
||||||
|
|
||||||
#endif // TEMPLATES_H
|
#endif // TEMPLATES_H
|
||||||
|
|
|
@ -201,11 +201,21 @@ char* gen_html(const char *url, struct Entry *entries, size_t numentries, int up
|
||||||
|
|
||||||
if(uploadEnabled) {
|
if(uploadEnabled) {
|
||||||
strcat(result, "<h2>Upload</h2>");
|
strcat(result, "<h2>Upload</h2>");
|
||||||
strcat(result, "<p><a href=\"?upload=1\">Upload a file to this directory</a></p>");
|
strcat(result, "<p>Upload a file to this directory:</p>");
|
||||||
|
strcat(result,
|
||||||
|
"<p>"
|
||||||
|
" <form method=\"POST\" action=\".\" enctype=\"multipart/form-data\">"
|
||||||
|
" <input name=\"data\" type=\"file\" size=\"30\">"
|
||||||
|
" <input type=\"submit\" value=\"Go!\">"
|
||||||
|
" </form>"
|
||||||
|
"</p>"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
strcat(result, FOOTER);
|
strcat(result, FOOTER);
|
||||||
|
|
||||||
|
LOG(LVL_DEBUG, "result string (files) usage: %lu/%lu bytes", strlen(result), allocated);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
15
src/main.c
15
src/main.c
|
@ -49,7 +49,6 @@ struct MHD_Response *error403Response;
|
||||||
struct MHD_Response *error404Response;
|
struct MHD_Response *error404Response;
|
||||||
struct MHD_Response *error500Response;
|
struct MHD_Response *error500Response;
|
||||||
struct MHD_Response *faviconResponse;
|
struct MHD_Response *faviconResponse;
|
||||||
struct MHD_Response *uploadFormResponse;
|
|
||||||
|
|
||||||
#ifdef HAVE_MAGIC
|
#ifdef HAVE_MAGIC
|
||||||
magic_t magicCookie;
|
magic_t magicCookie;
|
||||||
|
@ -466,11 +465,7 @@ static int connection_handler(void * cls,
|
||||||
if(S_ISREG(connstate->targetStat.st_mode)) {
|
if(S_ISREG(connstate->targetStat.st_mode)) {
|
||||||
return serv_regular_file(connection, connstate);
|
return serv_regular_file(connection, connstate);
|
||||||
} else if(S_ISDIR(connstate->targetStat.st_mode)) {
|
} else if(S_ISDIR(connstate->targetStat.st_mode)) {
|
||||||
if(uploadEnabled && connstate->uploadRequest) {
|
|
||||||
return MHD_queue_response(connection, MHD_HTTP_OK, uploadFormResponse);
|
|
||||||
} else {
|
|
||||||
return serv_directory(connection, connstate);
|
return serv_directory(connection, connstate);
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
LOG(LVL_WARN,
|
LOG(LVL_WARN,
|
||||||
"%s is neither a directory nor a regular file. Don't allow the access.",
|
"%s is neither a directory nor a regular file. Don't allow the access.",
|
||||||
|
@ -704,15 +699,6 @@ int main(int argc, char ** argv) {
|
||||||
MHD_add_response_header(error404Response, MHD_HTTP_HEADER_CONTENT_TYPE, "text/html");
|
MHD_add_response_header(error404Response, MHD_HTTP_HEADER_CONTENT_TYPE, "text/html");
|
||||||
MHD_add_response_header(error500Response, MHD_HTTP_HEADER_CONTENT_TYPE, "text/html");
|
MHD_add_response_header(error500Response, MHD_HTTP_HEADER_CONTENT_TYPE, "text/html");
|
||||||
|
|
||||||
// static response for upload form
|
|
||||||
uploadFormResponse = MHD_create_response_from_data(
|
|
||||||
strlen(UPLOAD_FORM),
|
|
||||||
(void*) UPLOAD_FORM,
|
|
||||||
MHD_NO,
|
|
||||||
MHD_NO);
|
|
||||||
|
|
||||||
MHD_add_response_header(uploadFormResponse, MHD_HTTP_HEADER_CONTENT_TYPE, "text/html");
|
|
||||||
|
|
||||||
// static response for favicon
|
// static response for favicon
|
||||||
faviconResponse = create_favicon_response();
|
faviconResponse = create_favicon_response();
|
||||||
|
|
||||||
|
@ -763,7 +749,6 @@ int main(int argc, char ** argv) {
|
||||||
MHD_destroy_response(error404Response);
|
MHD_destroy_response(error404Response);
|
||||||
MHD_destroy_response(error500Response);
|
MHD_destroy_response(error500Response);
|
||||||
MHD_destroy_response(faviconResponse);
|
MHD_destroy_response(faviconResponse);
|
||||||
MHD_destroy_response(uploadFormResponse);
|
|
||||||
|
|
||||||
#ifdef HAVE_MAGIC
|
#ifdef HAVE_MAGIC
|
||||||
magic_close(magicCookie);
|
magic_close(magicCookie);
|
||||||
|
|
Loading…
Reference in a new issue