有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在本地和远程服务器上存储内容

我写了一个程序,要求从用户的视频文件。一旦用户浏览视频,它就会保存在war/内容中。我做这件事没有任何问题。当我想看视频时,我使用了html的视频标签并给出了相对路径。视频非常好,可以观看

我使用以下代码行解析路径

    System.setProperty("webapp.root", "C:/solution/totalsolution");
File webappDir = new File(System.getProperty("webapp.root", "./"));

        File webappInfo = new File(webappDir, "war");

        if(!webappInfo.exists()){
            File dir = new File(webappDir, "war");
            if(!dir.exists()){
                if(dir.mkdir()){
                    webappDir = dir;
                }
            }
        }

        webappDir = webappInfo;

        webappInfo = new File(webappDir, "content");

        if(!webappInfo.exists()){
            File dir = new File(webappDir, "content");
            if(!dir.exists() && dir.mkdir()){
                webappDir = dir;
            }
        }


        webappDir = webappInfo;

        if(contentDir != null){
            webappInfo = new File(webappDir, contentDir);

            if(!webappInfo.exists()){
                File dir = new File(webappDir, contentDir);
                if(!dir.exists() && dir.mkdir()){
                    webappDir = dir;
                }
            }

            webappDir = webappInfo; 
        }

此程序在指定的路径中创建新文件夹,如"C:/solution/totalsolution/war/content/abcd/xysa.mp4" 当我显示任何资源时,我会创建如下的相对路径

http://localhost:8080/solution/content/abcd/xysa.mp4

到目前为止,一切都很好。但当我提取war文件并将其部署到服务器时。 然后是由于系统属性中的静态位置而导致的路径失败

所以,任何机构都可以告诉我们,将数据保存到war文件夹并在本地和服务器上重新读取数据是正确的方法


共 (2) 个答案

  1. # 1 楼答案

    1)不要将其存储在war文件夹中,而是存储在单独的位置(可能是专门为此设计的)。 2) 从用户处获取文件时,您需要为此文件生成新的唯一名称,并将原始文件名到新文件名的映射存储在某个位置(例如DB)。然后在磁盘上以新名称存储文件。这是为了保证您的文件名是唯一的(想想如果两个用户上载同名文件会发生什么情况)

  2. # 2 楼答案

    不要试图将数据保存到你的webapp中;不能保证这个目录是可写的,甚至不能从jar中解压缩。相反,请读取一个属性,该属性告诉您在运行时将保存的数据存储在何处