23 #include <core/exceptions/system.h>
25 #include <utils/system/filetype.h>
26 #include <webview/file_reply.h>
46 const std::string &content_type)
47 : DynamicWebReply(WebReply::HTTP_OK), close_when_done_(true)
49 if (access(filename.c_str(), R_OK) != 0 || ((file_ = fopen(filename.c_str(),
"r")) == NULL)) {
53 determine_file_size();
55 if (content_type.empty()) {
66 : DynamicWebReply(WebReply::HTTP_OK), close_when_done_(true)
68 if (access(filename, R_OK) != 0 || ((file_ = fopen(filename,
"r")) == NULL)) {
72 determine_file_size();
82 : DynamicWebReply(WebReply::HTTP_OK), file_(file), close_when_done_(close_when_done)
84 fseek(file_, 0, SEEK_SET);
85 determine_file_size();
90 fseek(file_, 0, SEEK_SET);
102 DynamicFileWebReply::determine_file_size()
105 fstat(fileno(file_), &sbuf);
107 if (S_ISDIR(sbuf.st_mode)) {
110 size_ = sbuf.st_size;
122 if ((fseek(file_, pos, SEEK_SET) == -1) || feof(file_)) {
125 return fread(buffer, 1, buf_max_size, file_);