1. What happens? Is an exception thrown? 2. If you upload to the file system, like the jumpstart example does; then you should download from the file system - but your example, below, is downloading from a path relative to the classpath of the web app. Try this instead:
inputStream = new FileInputStream(myFilePath); Geoff On 05/06/2013, at 8:01 AM, Petr Janata wrote: > Hi, > > thanks for links with ideas. I am new in Tapestry I use Example > App<http://jumpstart.doublenegative.com.au/jumpstart/theapp/login> > from > Jumpstart tutorial . I added File > Upload<http://jumpstart.doublenegative.com.au/jumpstart/examples/javascript/fileupload> > to > Example App and HSQL table for uploaded file names. In Example App is > used Protecting > Pages<http://jumpstart.doublenegative.com.au/jumpstart/examples/infrastructure/protectingpages> > and > I can not download uploaded file by simple href even if I am logged in as a > admin user. > > How to allow to download file from upload-path? > > I use simple link in tml file > > <a t:type="eventlink" t:event="returnstreamresponse" href="#">download</a> > > and I also added onReturnStreamResponse into java file from jumpstart > tutorial from this link. > > StreamResponse onReturnStreamResponse() { > return new StreamResponse() { > InputStream inputStream; > > @Override > public void prepareResponse(Response response) { > ClassLoader classLoader = > Thread.currentThread().getContextClassLoader(); > inputStream = > classLoader.getResourceAsStream("regoznapp/enterprise/src/main/resources/return.txt"); > > // Set content length to prevent chunking - see > // > http://tapestry-users.832.n2.nabble.com/Disable-Transfer-Encoding-chunked-from-StreamResponse-td5269662.html#a5269662 > > try { > response.setHeader("Content-Length", "" + > inputStream.available()); > } > catch (IOException e) { > // Ignore the exception in this simple example. > } > } > > @Override > public String getContentType() { > return "text/plain"; > } > > @Override > public InputStream getStream() throws IOException { > return inputStream; > } > }; > } > > Petr