Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在哪里保存用户文件?_Java_File Upload_Tomcat6 - Fatal编程技术网

Java 在哪里保存用户文件?

Java 在哪里保存用户文件?,java,file-upload,tomcat6,Java,File Upload,Tomcat6,我在服务器端使用Tomcat6.0.32开发了一个web应用程序 在客户端,用户可以发送一个文件(最大大小:10MB),我的web应用程序应该将它们保存在本地。 这些文件不应直接通过URL(例如:)实现 我必须在哪里保存这些文件?我想在/WEB-INF/user_folder/或其他位置?您可以使用apache文件上载库和apache commons io。出于安全原因,最好将您的文件保存在其他位置。例如,在硬盘中的某个位置,并将该位置存储在数据库中。如果您保存,有人可以通过您的url下载您的文

我在服务器端使用Tomcat6.0.32开发了一个web应用程序

在客户端,用户可以发送一个文件(最大大小:10MB),我的web应用程序应该将它们保存在本地。 这些文件不应直接通过URL(例如:)实现


我必须在哪里保存这些文件?我想在/WEB-INF/user_folder/或其他位置?

您可以使用apache文件上载库和apache commons io。出于安全原因,最好将您的文件保存在其他位置。例如,在硬盘中的某个位置,并将该位置存储在数据库中。如果您保存,有人可以通过您的url下载您的文件您的web文件夹中的文件。 然后,您可以创建一个servlet来打开文件并将其发送给客户端


您可以使用apache文件上载库和apache commons io。出于安全原因,最好将文件保存在其他地方。例如,将文件保存在硬盘中的某个位置并存储在数据库中。如果您将文件保存在web文件夹中,则有人可以通过url下载您的文件。 然后,您可以创建一个servlet来打开文件并将其发送给客户端


理论上,你可以把文件放在任何地方:

  • 在$CATALINA_HOME/webapp/WEB-INF/…中
  • 在$CATALINA_HOME/webapp/…中
  • 以$CATALINA_HOME/temp/…为单位
  • 在$CATALINA_HOME的自定义子目录中
  • 本地文件系统中的其他位置
  • 论网络共享
  • 在数据库中
  • 埋在花园底部的石碑上
实际上,由您决定哪一个最容易管理。例如:

  • 如果将文件放在webapp目录中,则存在重新部署webapp将文件吹走的风险
  • 如果您将文件放在$CATALINA_主目录树之外,并在启用Java安全性的情况下运行Tomcat,您的webapp可能会被阻止读取/写入文件。(这实际上可能是件好事!)
  • 您需要确保请求不能在意外的位置读/写文件。例如,您需要防止使用“../......”来中断和访问主机操作系统中的文件的请求;e、 g.“../../../../etc/passwd”
  • 需要考虑文件备份和文件空间管理问题。
  • (石碑带来了一些有趣的挑战…)

理论上,你可以把文件放在任何地方:

  • 在$CATALINA_HOME/webapp/WEB-INF/…中
  • 在$CATALINA_HOME/webapp/…中
  • 以$CATALINA_HOME/temp/…为单位
  • 在$CATALINA_HOME的自定义子目录中
  • 本地文件系统中的其他位置
  • 论网络共享
  • 在数据库中
  • 埋在花园底部的石碑上
实际上,由您决定哪一个最容易管理。例如:

  • 如果将文件放在webapp目录中,则存在重新部署webapp将文件吹走的风险
  • 如果您将文件放在$CATALINA_主目录树之外,并在启用Java安全性的情况下运行Tomcat,您的webapp可能会被阻止读取/写入文件。(这实际上可能是件好事!)
  • 您需要确保请求不能在意外的位置读/写文件。例如,您需要防止使用“../......”来中断和访问主机操作系统中的文件的请求;e、 g.“../../../../etc/passwd”
  • 需要考虑文件备份和文件空间管理问题。
  • (石碑带来了一些有趣的挑战…)

将上载内容保存在web信息(web-INF)目录下肯定会将文件隐藏起来,不让用户看到,但实际上,几乎没有人这样做。下次对WAR进行新修订时,可能会丢失保存在该文件夹中的所有内容

URL和上下文(例如mywebapp.com/user/*)的控制应由您通过在
web.xml
中配置来控制,或者如果您使用各种MVC框架,如Struts,
Struts.xml


您可能需要提前考虑,将这些用户上传的文件保存在服务器中的其他位置,例如
/apps/myproject/user uploads

将上传内容保存在web信息(web-INF)目录下肯定会对用户隐藏文件,但实际上几乎没有人这样做。下次对WAR进行新修订时,可能会丢失保存在该文件夹中的所有内容

URL和上下文(例如mywebapp.com/user/*)的控制应由您通过在
web.xml
中配置来控制,或者如果您使用各种MVC框架,如Struts,
Struts.xml


您可能需要提前考虑,将这些用户上传的文件保存在服务器中的其他位置,例如
/apps/myproject/user uploads

我认为石碑是最好的地方。LOLLLL:)我用过石碑。最后我用了“在数据库中”选项,因为它自动提供了安全边界。但如果用户想从broswer下载文件(例如,单击html按钮),我如何提供此功能?我认为stone tablets是最好的地方。LOLLLL:)我使用了stone tablets。最后,我使用了“在数据库中”选项,因为它自动提供了安全边界。但如果用户想从broswer下载文件(例如,单击html按钮),我如何提供此功能?