项目中有涉及到上传附件,上传照片等类似需求,且需要提供下载。由于这些量不大,可以直接用七牛云存储或者阿里云存储等类似东西,但是不想花钱,项目不大,就想用tomcat来作为文件服务器,文件直接上传到自己的服务器上即可。
第一步:先创建tomcat文件服务器。
上传文件到服务器,如果自己配置用类似tomcat的容器的话,每次重启服务器后 文件会消失,或者会存在丢失现象,解决方式:利用虚拟目录,将tomcat和上传的文件分离。具体就是利用tomcat配置将某个请求映射到物理路径下,完成文件回显。这样文件可以存放在本地,或者远程服务器上,而非tomcat上面。在http://xx.xx.xx.xx:xxxx/服务器上, tomcat配置为
web.xml 修改配置为(为true 可以查看列表,false 就是关闭,为了看出效果,就打开)
这样启动tomcat后 浏览器访问地址,结果如下:
第二步:上传文件
html中部分代码如下:
vue中 方法如下:
后台controller 中的mapping ,其中 downloadDir 和 isForTest 是写在 application.yml中,区别测试和正式服务器
FileUtil.java
页面显示
上传结果:
第三步:下载
下载可以直接用windows.location.href =url 这种对jpg 或者txt类型文件 会被直接打开,用XMLHttpRequest来下载,如下
jqGrid的colModel 中 显示如下
此时下载会提示 跨域问题
再次下载,成功!