2013-04-17 4 views
2

Я новичок в WT, я пытаюсь загрузить пример файла. Код работает нормально, когда я нажимаю кнопку отправки, строка выполнения файла работает до 100%, но я не уверен, где она загружается? мы можем определить, загружать в определенном пути ..Загрузить файл с помощью wt

class HelloApplication: public WApplication { 
public: 
    HelloApplication(const WEnvironment& env); 

private: 

    WPushButton *uploadButton; 
    Wt::WFileUpload *fu; 

    void greet(); 
}; 

HelloApplication::HelloApplication(const WEnvironment& env) : 
     WApplication(env) { 
    root()->addStyleClass("container"); 
    setTitle("Hello world");  // application title 

    fu = new Wt::WFileUpload(root()); 
    fu->setFileTextSize(50); // Set the maximum file size to 50 kB. 
    fu->setProgressBar(new Wt::WProgressBar()); 
    fu->setMargin(10, Wt::Right); 

    // Provide a button to start uploading. 
    uploadButton = new Wt::WPushButton("Send", root()); 
    uploadButton->setMargin(10, Wt::Left | Wt::Right); 

    // Upload when the button is clicked. 

    uploadButton->clicked().connect(this, &HelloApplication::greet); 
} 

void HelloApplication::greet() { 
    fu->upload(); 
    uploadButton->disable(); 

} 

WApplication *createApplication(const WEnvironment& env) { 

    return new HelloApplication(env); 
} 

int main(int argc, char **argv) { 
    return WRun(argc, argv, &createApplication); 
} 
+0

Что вы узнали до сих пор и почему это не помогло? –

+0

Я не уверен, где загружаются файлы? – Kathick

+0

_Что вы выяснили до сих пор и почему это не помогло? _ Вы уже заглянули в руководства? –

ответ

2

WFileUpload будет срабатывать сигнал (загруженный()), когда файл будет завершен. Затем посмотрите на spoolFileName(), чтобы получить имя файла на локальном диске. Слушайте также файлTooLarge(), так как он сообщит вам, что загрузка не удалась.

В руководстве WFileUpload поставляется с большим количеством информации и пример кода: http://www.webtoolkit.eu/wt/doc/reference/html/classWt_1_1WFileUpload.html

1

Я понимаю, что это старый пост, но я также имел проблемы и вопрос был не совсем ответил (конкретно uploadedFiles функция, которая необходима, чтобы прочитать содержимое файла)

в конструкторе (т.е. функции HelloApplication :: HelloApplication) добавить реагировать на сигнал fileUploaded:

uploadButton->uploaded().connect(this, &HelloApplication::fileUploaded); 

Затем добавить функцию, как это прочитать содержимое файла:

void HelloApplication::fileUploaded() { 
    //The uploaded filename 
    std::string mFilename = fu->spoolFileName(); 

    //The file contents 
    std::vector<Wt::Http::UploadedFile> mFileContents = fu->uploadedFiles(); 

    //The file is temporarily stored in a file with location here 
    std::string mContents; 
    mContents=mFileContents.data()->spoolFileName(); 

    //Do something with the contents here 
    //Either read in the file or copy it to use it 

    //return 
    return; 
} 

Я надеюсь, что это помогает кому-либо еще перенаправляется сюда.

Смежные вопросы