mirror of
https://gitea.psi.ch/ELOG/elog.git
synced 2026-09-08 17:13:56 +00:00
Implemented first version of show_uploader_json()
This commit is contained in:
parent
09a357d2a4
commit
a883408085
66
src/elogd.c
66
src/elogd.c
@ -26371,6 +26371,65 @@ void show_uploader_finished(LOGBOOK * lbs)
|
|||||||
|
|
||||||
/*------------------------------------------------------------------*/
|
/*------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void show_uploader_json(LOGBOOK *lbs)
|
||||||
|
{
|
||||||
|
char charset[256];
|
||||||
|
char filename[256], thumbname[256];
|
||||||
|
int i;
|
||||||
|
|
||||||
|
rsprintf("HTTP/1.1 200 Document follows\r\n");
|
||||||
|
rsprintf("Server: ELOG HTTP %s-%s\r\n", VERSION, git_revision + 33);
|
||||||
|
rsprintf("Accept-Ranges: bytes\r\n");
|
||||||
|
rsprintf("Pragma: no-cache\r\n");
|
||||||
|
rsprintf("Expires: Fri, 01 Jan 1983 00:00:00 GMT\r\n");
|
||||||
|
if (keep_alive) {
|
||||||
|
rsprintf("Connection: Keep-Alive\r\n");
|
||||||
|
rsprintf("Keep-Alive: timeout=60, max=10\r\n");
|
||||||
|
}
|
||||||
|
if (!getcfg("global", "charset", charset, sizeof(charset)))
|
||||||
|
strcpy(charset, DEFAULT_HTTP_CHARSET);
|
||||||
|
rsprintf("Content-Type: text/plain;charset=%s\r\n\r\n", charset);
|
||||||
|
|
||||||
|
rsprintf("{\r\n");
|
||||||
|
rsprintf(" \"attachments\" : [\r\n");
|
||||||
|
|
||||||
|
rsprintf(" {\r\n");
|
||||||
|
|
||||||
|
rsprintf(" \"fullName\": \"%s\",\r\n", getparam("attachment0"));
|
||||||
|
|
||||||
|
strlcpy(filename, lbs->data_dir, sizeof(filename));
|
||||||
|
strlcat(filename, getparam("attachment0"), sizeof(filename));
|
||||||
|
|
||||||
|
if (create_thumbnail(lbs, filename)) {
|
||||||
|
get_thumb_name(filename, thumbname, sizeof(thumbname), 0);
|
||||||
|
if (strrchr(thumbname, '/'))
|
||||||
|
rsprintf(" \"thumbName\": \"%s\",\r\n", strrchr(thumbname, '/')+1);
|
||||||
|
else
|
||||||
|
rsprintf(" \"thumbName\": \"%s\",\r\n", thumbname);
|
||||||
|
}
|
||||||
|
|
||||||
|
rsprintf(" \"contentType\": ");
|
||||||
|
|
||||||
|
for (i = 0; filetype[i].ext[0]; i++)
|
||||||
|
if (chkext(filename, filetype[i].ext))
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (filetype[i].ext[0])
|
||||||
|
rsprintf("\"%s\",\r\n", filetype[i].type);
|
||||||
|
else if (is_ascii(filename))
|
||||||
|
rsprintf("\"%s\",\r\n", "text/plain");
|
||||||
|
else
|
||||||
|
rsprintf("\"%s\",\r\n", "application/octet-stream\r\n");
|
||||||
|
|
||||||
|
rsprintf(" }\r\n");
|
||||||
|
rsprintf(" ]\r\n");
|
||||||
|
rsprintf("}\r\n");
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------------*/
|
||||||
|
|
||||||
void interprete(char *lbook, char *path)
|
void interprete(char *lbook, char *path)
|
||||||
/********************************************************************
|
/********************************************************************
|
||||||
Routine: interprete
|
Routine: interprete
|
||||||
@ -26628,6 +26687,13 @@ void interprete(char *lbook, char *path)
|
|||||||
if (lbs->n_attr < 0)
|
if (lbs->n_attr < 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/* evaluate AJAX xommand */
|
||||||
|
if (isparam("acmd") && *getparam("acmd")) {
|
||||||
|
if (strieq(getparam("acmd"), "Upload"))
|
||||||
|
show_uploader_json(lbs);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* if we outsource the authentication to Webserver and have no sid, just set a new sid */
|
/* if we outsource the authentication to Webserver and have no sid, just set a new sid */
|
||||||
getcfg(lbs->name, "Authentication", str, sizeof(str));
|
getcfg(lbs->name, "Authentication", str, sizeof(str));
|
||||||
if (stristr(str, "Webserver")) {
|
if (stristr(str, "Webserver")) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user