Markus, I extended the suggested filename support to handle UTF-8 correctly. Until all browsers support RFC 5987, we either have to send UTF-8 literal or url escaped, depending on the browser.
Patch will be in public git soon. BR, Wim. 2010/11/30 Markus <[email protected]>: > Hello, > > If a filename with a special character is passed to > WResource::suggestFileName(), browser detects the name incorrectly. In > the following example program, a filename "A B.txt" with a space character > is used. When the link is clicked in Firefox 3.6.12, it suggests filename > "A". > > > #include <Wt/WAnchor> > #include <Wt/WApplication> > #include <Wt/WFileResource> > #include <Wt/WText> > > static Wt::WApplication* createApplication(Wt::WEnvironment const& > environment) > { > Wt::WApplication* application = new Wt::WApplication(environment); > > Wt::WResource* resource = new Wt::WFileResource( "./docroot/foo.txt", > application ); > resource->suggestFileName( "A B.txt" ); > Wt::WAnchor* anchor = new Wt::WAnchor(resource); > new Wt::WText( Wt::WString( "link" ), anchor ); > > application->root()->addWidget(anchor); > > return application; > } > > int main(int argc, char* argv[]) > { > return Wt::WRun(argc, argv, &createApplication); > } > > > Maybe there is a syntax error in constructing the HTTP response? If I add > quotes around the filename in the response, Firefox determines the > filename correctly. Here is a patch to add the quotes. Probably more > changes are needed: the filename itself may contain quotes for example. > > > >From 46ad90d4b758851d8f558d506bf58b7b89dd002f Mon Sep 17 00:00:00 2001 > From: Markus Rinne <[email protected]> > Date: Mon, 29 Nov 2010 16:45:04 +0200 > Subject: [PATCH] Put resource filename in quotes. > > Quotes are needed if the filename contains spaces or some other > special characters. > --- > src/Wt/WResource.C | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/src/Wt/WResource.C b/src/Wt/WResource.C > index 576ac77..e888e01 100644 > --- a/src/Wt/WResource.C > +++ b/src/Wt/WResource.C > @@ -115,7 +115,7 @@ void WResource::handle(WebRequest *webRequest, > WebResponse *webResponse, > > if (!continuation && !suggestedFileName_.empty()) > response.addHeader("Content-Disposition", > - "attachment;filename=" + suggestedFileName_); > + "attachment;filename=\"" + suggestedFileName_ + "\""); > > handleRequest(request, response); > > -- > 1.7.3.1 > > > ------------------------------------------------------------------------------ > Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! > Tap into the largest installed PC base & get more eyes on your game by > optimizing for Intel(R) Graphics Technology. Get started today with the > Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. > http://p.sf.net/sfu/intelisp-dev2dev > _______________________________________________ > witty-interest mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/witty-interest > ------------------------------------------------------------------------------ Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! Tap into the largest installed PC base & get more eyes on your game by optimizing for Intel(R) Graphics Technology. Get started today with the Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. http://p.sf.net/sfu/intelisp-dev2dev _______________________________________________ witty-interest mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/witty-interest
