开发者社区 问答 正文

JFinal 中的renderFile() http路径

我想返回一个用来下载的txt文件 renderFile()这个方法 只能填入绝对路径吗 ? 我的是http的路径 怎么办

展开
收起
小旋风柴进 2016-06-08 14:02:24 4576 分享 版权
1 条回答
写回答
取消 提交回答
  • 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);

    2019-07-17 19:31:49
    赞同 展开评论
问答地址: