首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wt:WFileUpload文件太大

Wt:WFileUpload文件太大
EN

Stack Overflow用户
提问于 2016-10-02 13:46:37
回答 1查看 381关注 0票数 4

我试图让用户上传多个大型的XML和文本文件以供进一步处理,但是WFileUpload不允许任何超过128 am的内容,而且我无法找到一种覆盖默认设置的方法。在Xubuntu 16.04上安装了wt 3.3.6。使用Firefox中的默认设置访问0.0.0.0:8080的wthttp服务器。

我已经查看了file_dialog可执行文件的--帮助设置,并找到了这个选项--最大内存请求大小,但是更改它似乎没有帮助。我还编辑了/etc/wt/wt_config.xml,将最大内存请求大小更改为大于128 no的值,也没有效果。基于输出文件“file _对话框-output.txt”,我可以成功地上传一个60 2Mb的文件,但是2MB文件失败了。

我正在构建和运行以下代码,如.hpp文件中所述:

file_dialog.hpp

代码语言:javascript
复制
//Compile
//g++ file_dialog.cpp -o file_dialog -lwt -lwthttp
//Run
//./file_dialog --docroot . --http-address 0.0.0.0 --http-port 8080

//headers
#include <Wt/WApplication>
#include <Wt/WContainerWidget>
#include <Wt/WFileUpload>
#include <Wt/WPushButton>
#include <Wt/WBreak>

//FileApplication class definition, derived from WApplication
class FileApplication : public Wt::WApplication
{
    public:
        FileApplication(const Wt::WEnvironment & env);
        Wt::WContainerWidget * file_upload_dialog_container_widget;
        Wt::WFileUpload * file_upload;
        Wt::WPushButton * file_output_button;
        std::ofstream fout;
        void tooLargeBytes(long long int byte_size_1);
        void warningFileTooLarge(void);
        void infoFileUploaded(void);
};

file_dialog.cpp

代码语言:javascript
复制
#include "file_dialog.hpp"

//FileApplication constructer class; returns root with widget
FileApplication::FileApplication(const Wt::WEnvironment& env)
:   Wt::WApplication(env)
{
    setTitle("File Generation");

    this->requestTooLarge().connect(this, &FileApplication::tooLargeBytes);

    Wt::WContainerWidget * upload_dialog_container_widget = new Wt::WContainerWidget(root());
    Wt::WFileUpload * file_upload = new Wt::WFileUpload(upload_dialog_container_widget);
    file_upload->setMultiple(true);
    new Wt::WBreak(upload_dialog_container_widget);
    Wt::WPushButton * file_output_button = new Wt::WPushButton(upload_dialog_container_widget);
    file_output_button->setText("Upload");

    file_upload->fileTooLarge().connect(this, &FileApplication::warningFileTooLarge);
    file_upload->uploaded().connect(this, &FileApplication::infoFileUploaded);
    file_output_button->clicked().connect(file_upload, &Wt::WFileUpload::upload);
    file_output_button->clicked().connect(file_output_button, &Wt::WPushButton::disable);
}

//Application - File too large
void FileApplication::tooLargeBytes(long long int byte_size_1)
{
    std::ofstream fout ("file_dialog-output.txt");
    fout << "byte_size_1";
    fout << byte_size_1;
    fout.close();
}

//File too large
void FileApplication::warningFileTooLarge(void)
{
    std::ofstream fout ("file_dialog-output.txt");
    fout << "File too large";
    fout.close();
}

//File successfully uploaded
void FileApplication::infoFileUploaded(void)
{
    std::ofstream fout ("file_dialog-output.txt");
    fout << "File uploaded";
    fout.close();
}

//Application constructor function
Wt::WApplication * createApplication(const Wt::WEnvironment& env)
{
    return new FileApplication(env);
}

//Main function
int main(int argc, char ** argv)
{
    return Wt::WRun(argc, argv, &createApplication);
}

任何帮助都是非常感谢的!

Wt:https://www.webtoolkit.eu/wt

Wt::WFileUpload:1WFileUpload.html

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-03 03:30:12

解决方案:在wt_config.xml中增加参数max-请求大小

由于这些解决方案所需的资源:

https://www.webtoolkit.eu/wt/doc/reference/html/overview.html

http://redmine.webtoolkit.eu/boards/2/topics/11351?r=11943#message-11943

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39817646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档