【发布时间】:2012-04-19 14:54:03
【问题描述】:
我是游戏框架的新手,我想通过以下方式下载文件:
- 从数据库中获取了文件路径。
- 点击路径应该会打开一个 web 表单中的文件。
是否可以在游戏框架中做?如果可以,请给我一些想法..
谢谢
【问题讨论】:
标签: playframework playframework-1.x
我是游戏框架的新手,我想通过以下方式下载文件:
是否可以在游戏框架中做?如果可以,请给我一些想法..
谢谢
【问题讨论】:
标签: playframework playframework-1.x
使用播放控制器可以轻松下载文件,如下所示,
public Result downloadFile(){
File fileToDownload = new File("/path/fileToDownload.pdf"):
response().setContentType("application/x-download");
response().setHeader("Content-disposition", "attachment; filename=fileToDownload.pdf");
return ok(fileToDownload);
}
Scala 方式
def downloadFile = Action {
Ok.sendFile(
content = new java.io.File("/path/fileToDownload.pdf"),
fileName = _ => "fileToDownload.pdf"
)
}
【讨论】:
如果您指的是服务器上的文件路径,那么这很简单。只需使用renderBinary 方法。这可以采用输入流或 File 对象,所以 ...
renderBinary(new File(filepath));
应该可以解决问题。
【讨论】:
一个例子
在 JPA 模型中
@Lob
@Column(name="NY_FILE",length=100000, nullable=false)
private byte[] myFile;
@Column(name="MIME_TYPE", nullable=false)
private String mimeType;
控制器
@play.db.jpa.Transactional(readOnly=true)
public Result download(Long id){
myPOJO = arquivo.findByid(JPAapi.em(), id);
return ok(MyPOJO.getMyFile()).as(myPOJO.getMimeType());
}
路由文件
GET /download/:id @controllers.MyController.download(id:Long)
HTML 链接
<a id="linkDownload" href="/download/@myPOJO.getMyFile.getId" target="_blank">
@myPOJO.getMyFile.getName
</a>
【讨论】:
File file = new File("file pathfr");
return ok(file);
【讨论】: