JFinal renderFile() 在Tomcat中报404错误

JFinal renderFile() 在Tomcat中报404错误

百思不得你姐 发布于 2021-11-27 字数 305 浏览 918 回复 11

@JFinal 你好,想跟你请教个问题:我的下载路径设置如下:me.setFileRenderPath("/upload/file"); 当我用renderFile(filename)下载文件时,在Jetty中没问题,但是在Tomcat中会报404错误,请问这么怎么回事?如何解决?谢谢

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

简单气质女生网名 2021-12-01 11 楼

应该是部署在 tomcat 时使用了 context path值,造成了 url 的改变,参考一下我写的这篇博客来部署:
http://my.oschina.net/jfinal/blog/353062

瑾兮 2021-12-01 10 楼

我找到原因了,不是项目路径的问题,是打包成war之后,上传的中文文件名发生乱码了,所以部署到tomcat之后就404了,不过没找到解决的办法。

累赘 2021-12-01 9 楼

回复
在保存的时候重命名可以不?

酒几许 2021-12-01 8 楼

回复
其实在项目部署之后,把以前上传的文件删除了,然后重新上传就不存在问题了。在myeclipse中进行测试时上传的中文文件打包部署时文件名就会乱码,没多大影响。

左岸枫 2021-12-01 7 楼

嘿嘿,不好意思,之前我是用的绝对地址,我没把文件放在tomcat之类的container中,我是通过renderFile把文件动态加载给用户。

public void pdf() {
	Integer projectId = getParaToInt(0);
	String fileName = Project.dao.getFileName(projectId);
	String path = Const.FILE_DIRECTORY;

	log.info("filepath : " + path + fileName);
	//File file = new File("C:/Users/hzhou/Downloads/test.pdf");
	File file = new File(path + fileName);
	renderFile(file);
}

时光清浅 2021-12-01 6 楼

不好使啊,我真是无奈了

小情绪 2021-11-30 5 楼

回复
好奇怪。如果确定文件存在且路径正确的话,那应该没问题的,我之前一直好用的。坐等大神回复

叹沉浮 2021-11-30 4 楼

回复
能看一下你写的例子吗?

坏尐絯 2021-11-30 3 楼

项目运行没问题,就是renderFile()报404错误。

泛滥成性 2021-11-29 2 楼

回复
在这个action中打印日志信息,并在config中设置me.setDevMode(true)

沦落红尘 2021-11-29 1 楼

看看是不是项目路径错了,,之前可能是localhost,换tomcat变成localhost:8080/xx之类的