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

What should be my path when I want users to upload file on my website?

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

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

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

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

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

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

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

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

这是一个结构,每个用户都在一个单独的文件夹中,子文件夹 images 包含该用户的图像,account 存储该用户的帐户详细信息和其他信息。这通常是更结构化的设置,虽然更高级,但对您有长期的好处。

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

总的来说,我通常会使用 images 目录,而不考虑文件夹结构的其余部分,因为这是您当前情况下最合乎逻辑的正确决定。

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

我做的是 运行 这段代码在 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);
    }

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

路径将沿着 /usr/public_html/images 的路线。您的主机是谁?

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

优点:

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

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

  • 如果存储文件夹与站点混乱,则页面加载时间过长有风险。

既然你有一个 JavaEE 网站,为什么不让一个控制器方法负责下载文件,并让上传函数的 return 值成为下载方法的路径?这样您就可以将图像存储在您的网站可以 write/read 访问的任何地方。我可以根据要求提供更多实施细节。