场景:
把文件上传到tomcat服务器的webapp中,把上传的文件url提供给其他应用或当前应用调用。
问题:
文件保存的路径应该在哪里?要建虚拟目录吗?表单提交后才上传到服务器?
我写的部分代码:
// 输出 : /项目名
String getContextPath = request.getSession().getServletContext().getContextPath();
// 去除/
String getContextName = request.getSession().getServletContext().getContextPath().substring(1,getContextPath.length());
System.out.println(realpath);
if(realpath2!=null){
int nIndex = realpath2.indexOf(getContextName);
realpath2 = realpath2.substring(0,nIndex)+"/Images";
System.out.println(realpath2);//D:\Program Files\apache-tomcat-7.0.55\webapps\/Images
}
保存路径是你的服务器决定的。上传下载可以用httpclient,另外用jsp写一个接收保存上传文件的程序,下载tomcat自带,只要这个目录配置为允许下载。
String path0 = request.getRequestURL().toString();
path0=path0.substring(0,path0.lastIndexOf("/")-3);
StringBuffer spath = new StringBuffer(100);
spath.append(path0)
.append("");//拼上你在webapp的路径
这就是文件保存的路径
为什么要写到webapp中呢?你可以写在服务器中的任何一个地方,然后将地址写在数据库里,然后再写一个对外的处理方法就可以了啊!
在webroot下简历一个目录,如果用的是spring框架的话把这个目录的访问权限设置成都可以访问。用表单上传文件后将文件写入这个目录中,数据库保存上传文件的相对地址,页面访问时使用相对地址。如果是上传的到文件服务器,访问时加上文件服务器所在的路径就好。