Bre*_*eak 1 java tomcat servlets file-upload
我希望我的servlet接收应用程序目录树下某个文件夹中的文件.服务器接受multipart/form-data格式的文件.我知道这@MultipartConfig是标记servlet代码的正确属性,允许服务器创建文件.但是,并非每个地点都被认为是安全的,因此有两个问题:
谢谢!
1:指定文件上载servlet的位置时有哪些限制
它需要是可读和可写的.它也需要是一个现有的位置,如果缺席,servletcontainer将不会为你预先创建它.
2:路径可以相对于应用程序路径还是绝对的?
只要1)得到确认,两者都是允许的.容器将在封面下java.io.File用于表示位置.所以使用相对路径绝对是一个坏主意.
3:文件必须可以在以后下载,所以一般来说,这是服务器上保存文件的最佳位置(在应用程序树下,在树外,在Tomcat树之外等等?)
放入webapp文件夹会导致它们在重新部署webapp时全部丢失.它也不适用于某些服务器配置,因为WAR文件的提取是可选的配置设置.因此,将它们放在webapp文件夹之外的固定路径上真的更好.要再次下载它们,只需<Context>向Tomcat 添加一个新的或创建一个servlet,它从中获取FileInputStream并写入OutputStream响应.例子可以在这个答案中找到.
4:由于注释似乎是一种非常"静态"的方式来允许servlet下载,例如可以在web.xml中指定相同的吗?
是的,您可以完全忽略location注释的属性,并使用Part#getInputStream()它将其写入所需的位置.然后,您可以指定<init-param>servlet 的位置并在init()方法中对其进行初始化.
| 归档时间: |
|
| 查看次数: |
1968 次 |
| 最近记录: |