2025-05-07 17:23
我直接定义一个MyFileRender继承自FileRender,再把里面的代码抄过来,改一下Content-disposition就可以了。
public class MyFileRender extends FileRender {
public MyFileRender(File file, String downloadFileName) {
super(file, downloadFileName);
}
@Override
public void render() {
if (file == null || !file.isFile()) {
RenderManager.me().getRenderFactory().getErrorRender(404).setContext(request, response).render();
return ;
}
// ---------
response.setHeader("Accept-Ranges", "bytes");
String fn = downloadFileName == null ? file.getName() : downloadFileName;
response.setHeader("Content-disposition", "inline; " + encodeFileName(request, fn));
String contentType = servletContext.getMimeType(file.getName());
response.setContentType(contentType != null ? contentType : DEFAULT_CONTENT_TYPE);
// ---------
if (normalRenderOnly || StrKit.isBlank(request.getHeader("Range"))) {
normalRender();
} else {
rangeRender();
}
}
}
2025-05-07 15:50
@JFinal 这个Header是服务端设置的,并且更改不了。后面我参考论坛上其它朋友的做法,重新了一个FileRender才能设置了,解决了我的问题。还是谢谢大哥
2025-04-29 09:30
@JFinal 大哥,您好,renderFile(new File());的时候,Content-Disposition是会被设置为attachment;的,这样会导致浏览器以保存附件的方式下载文件。
有一些场景我是想以页面显示的方式显示文件的,比如说一些图片或者