2012-12-17 32 views
16

Tôi đang sử dụng Play Framework 2.0.3 để tạo ứng dụng cung cấp các tệp Excel mà người dùng có thể tải xuống.Cách tải xuống tệp bằng Play Framework 2.0

response().setContentType("application/x-download"); 
response().setHeader("Content-disposition","attachment; filename=tradeLogTest.xlsx"); 

nhưng, làm thế nào để có được những OutputStream từ response() tks

Trả lời

34

hành động Play có thể trả về một tập tin:

response().setContentType("application/x-download"); 
response().setHeader("Content-disposition","attachment; filename=tradeLogTest.xlsx"); 
return ok(new File("/absolute/path/to/tradeLogTest.xlsx")); 

Here's an API for Results

+0

nó hoạt động, cảm ơn sự giúp đỡ của bạn. –

+14

Trong Scala có một phím tắt: Ok.sendFile (new java.io.File (myFile)). Có thể nó giống với Java –

+5

[Ở đây] (http://www.playframework.com/documentation/2.0.1/ScalaStream) là các tài liệu chính thức cho lối tắt của @ JulienLafont. – mjswensen

0

Phục vụ file Nếu nó không phải là một vấn đề để tải toàn bộ nội dung vào bộ nhớ cho nội dung đơn giản những gì về một tập dữ liệu lớn? Giả sử chúng tôi muốn gửi lại một tệp lớn cho ứng dụng web.

đọc thêm tại: http://www.playframework.com/documentation/2.0.x/JavaStream

6

Cung cấp tùy chọn tải về các tập tin tĩnh có thể được thực hiện trong chơi như:

Ok.sendFile(new File("path to file/abc.csv"), inline=true).withHeaders(CACHE_CONTROL->"max-age=3600",CONTENT_DISPOSITION->"attachment; filename=abc.csv", CONTENT_TYPE->"application/x-download"); 

Có các thông số khác cũng có sẵn

Đối với Internet Explorer - làm chắc chắn rằng bạn đã đặt Nội dung Disited

Các vấn đề liên quan