当我希望用户在我的网站上传文件时,我的道路应该是什么?

时间:2015-04-02 18:56:53

标签: java path web-hosting

我托管了我的JavaEE网站ImgEcho,其中我提供了用户可以上传图像的功能。当我在localhost上实现这个网站时,我直接给出了上传图像存储的路径“C:/ProjectName/images" 但是,我无法弄清楚托管服务器上的路径应该是什么。 P.S:我应该向我的托管服务器的客户支持提出这个问题,但他们有无用的服务。 提前谢谢。

8 个答案:

答案 0 :(得分:3)

根据您的需要,在这种情况下您可以做很多不同的事情。

如果您想拥有一个共享图像文件夹,在其中存储所有用户的图像,我建议您在项目根目录中创建images目录。

否则,如果要创建每个用户的图像存储,则可以执行以下操作:

-Project Root
    |-User 1
        |-images
        |-account
    |-User 2
        |-images
        |-account

这是一个包含单独文件夹中每个用户的结构,子文件夹images包含该用户的图像,account, 存储该用户的帐户详细信息和其他信息。这通常更像是一种设置,虽然更先进,但会长期受益。

对于更具扩展性的方法,也许将来如果您愿意扩展您的服务,我建议您使用大型外部网络硬盘驱动器或NAS(网络附加存储),然后将其用于所有图像存储。这将是非常先进的,并且可能是昂贵的,这就是为什么它将是一个长期的决定,由于可扩展性,未来很可能会使您的公司受益。

总的来说,我通常使用images目录,无论文件夹结构的其余部分如何,因为它是对您当前情况最正确的决策。

编辑:为了使此设置更安全,我建议将images目录放入自定义的无法识别的存档文件中,然后在需要使用时转换数据,在进行更改时再次返回。这可以确保没有偷偷摸摸的用户打开您的图像,因为它存储在普通的文件夹布局中。

答案 1 :(得分:0)

在根目录中创建一个名为" images"的文件夹。并将它们保存在那里。你必须调整其余的参考文献。

答案 2 :(得分:0)

您可以通过提供相对路径将图像存储在项目本身的路径中。

答案 3 :(得分:0)

您应该使用相对路径将其存储在站点中。您可能需要/images/uploads之类的项目。路径应位于Web文档的根目录中。这样做的原因是,如果你移动项目,事情可能会破裂。使用相对路径可确保您可以移动项目。此外,如果这是共享托管,您不必担心您的文件与其他人混在一起。

答案 4 :(得分:0)

我所做的是在jsp中运行此代码:

    java.io.File f = new java.io.File ("./");
    try{
        out.println(" f curr "  + f.getCanonicalPath());
    }catch(Exception e){
        out.println(" Err file :" + e + ", " + f);
    }

这告诉我我的网络应用程序的当前文件夹的路径,在某些云上已经看到其他人的/ xyz / tomcat / temp更长的路径。

答案 5 :(得分:0)

路径将沿/ usr / public_html / images行。谁是您的主持人?

答案 6 :(得分:0)

创建两个目录,一个用于您的站点,另一个用于您的存储目录。

优点:

  • 每次用户发送服务器请求以访问其数据时,它都会搜索目录中的文件或文件夹。

  • 通过chmod我们可以给他们两个不同的访问权限。

  • 如果存储文件夹弄乱了网站,则会出现长页面加载的风险。

答案 7 :(得分:0)

由于你有一个JavaEE网站,为什么不只是让一个控制器方法负责下载文件,并将上传功能的返回值作为下载方法的路径?这样,您可以将图像存储在您的网站具有写/读访问权限的任何位置。我可以根据要求提供更多实施细节。