我想返回一个用来下载的txt文件 renderFile()
这个方法 只能填入绝对路径吗 ? 我的是http的路径 怎么办
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
http 路径所指现的资源是你本站的资源么?如果不是本站的,暂时没有提供直接支持,现给出一个方案,先看一下 FileRender.java
中的如下代码段:
inputStream = new BufferedInputStream(new FileInputStream(file));
outputStream = response.getOutputStream();
byte[] buffer = new byte[1024];
for (int n = -1; (n = inputStream.read(buffer)) != -1;)
outputStream.write(buffer, 0, n);
如上代码段所示,文件下载实质就是往输出流里面 write buyte[]过去,所以,你只需要通过http资源拿到byte[]一样可以做到,所以建议你参考FileRender做个 HttpFileRender类,然后在Controller 中这样:
render(new HttpFileRender("http://www.jfinal.com/jfinal.txt"));
JFinal 考虑在下一版本中将这个功能做进去,接口形式可能如下:
Controller.render(Url url);