06.Linux下Tomcat虚拟目录配置访问

环境:CentOS7,tomcat7.0

 

1.修改server.xml

cd /usr/local/tomcat/conf

vi server.xml

<Context path="/test/res" docBase="/home/tuling" debug="0" reloadable="true" />

其中test是你的应用名字,res是随便自己设置的url映射路径,doBase之后就是文件的真实路径

 

2.出于安全考虑/usr/local/tomcat/conf/web.xml配置文件中的listings设置为false

cd /usr/local/tomcat/conf

vi web.xml

 

3.保存文件时需要保存到真实路径,也就是/home/tuling,保存时候linux需要给于文件操作权限

@RequestMapping("/upload3")
    public String upload3(@RequestParam("file") CommonsMultipartFile[] files,
            HttpServletRequest request, HttpServletResponse response,Model model) throws IllegalStateException, IOException {
        File temp = new File("/home/tuling/");
        if(!temp.exists()){
            temp.mkdir();
        }
        // 创建一个通用的多部分解析器
        CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
                request.getSession().getServletContext());
        // 判断 request 是否有文件上传,即多部分请求
        if (multipartResolver.isMultipart(request)) {
            // 转换成多部分request
            MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
            // 取得request中的所有文件名
            Iterator<String> iter = multiRequest.getFileNames();
            while (iter.hasNext()) {
                // 记录上传过程起始时的时间,用来计算上传时间
                int pre = (int) System.currentTimeMillis();
                // 取得上传文件
                MultipartFile file = multiRequest.getFile(iter.next());
                if (file != null) {
                    // 取得当前上传文件的文件名称
                    String myFileName = file.getOriginalFilename();
                    // 如果名称不为“”,说明该文件存在,否则说明该文件不存在
                    if (myFileName.trim() != "") {
                        System.out.println(myFileName);
                        // 重命名上传后的文件名
                        String fileName = file.getOriginalFilename();
                        // 定义上传路径
                        String path = "/home/tuling/" + fileName;
                        System.out.println(path);
                        File localFile = new File(path);
                        localFile.setWritable(true, false);
                        file.transferTo(localFile);
                        if(localFile.exists()){
                            System.out.println(true);
                            model.addAttribute("pic", fileName);
                        }else{
                            System.out.println(false);
                        }
                    }
                }
                // 记录上传该文件后的时间
                int finaltime = (int) System.currentTimeMillis();
                System.out.println(finaltime - pre);
            }

        }
        
        return "show";

    }

 

4.显示刚刚上传的文件show.jsp,注意img文件的路径需要添加res,这样才会定位到上边server.xml中配置的服务器中的真实文件目录

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  
  <body>
        文件上传成功. <br>
        ${ctx}+"/res/"+${pic}
        <img alt="" src="${ctx}/res/${pic}">
  </body>
</html>

 

posted @ 2016-09-13 18:44  桃源仙居  阅读(1751)  评论(0)    收藏  举报