Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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
如何使用JSP和servlet构建目录和文件层次上传功能?_Jsp_Servlets_File Upload - Fatal编程技术网

如何使用JSP和servlet构建目录和文件层次上传功能?

如何使用JSP和servlet构建目录和文件层次上传功能?,jsp,servlets,file-upload,Jsp,Servlets,File Upload,我正在使用JSP和servlet构建应用程序。我正在尝试建立一个文件上传功能。我想确保我在本地创建的文件夹结构被传输到ApacheWeb服务器。实现这一目标的途径是什么?我有一个表单,其中我使用输入文件控件提供特定文件夹的路径。提交表单时,应在web服务器上创建表单中选定文件夹下的任何文件和文件夹层次结构。如果文件夹包含任何文件,则该文件应自动传输到服务器。有可能实现这样的功能吗 上载文件时,通常仅获取文件名和文件内容。您通常也不会获得整个客户端磁盘文件系统路径。由于安全缺陷,只有较差的MSIE

我正在使用JSP和servlet构建应用程序。我正在尝试建立一个文件上传功能。我想确保我在本地创建的文件夹结构被传输到ApacheWeb服务器。实现这一目标的途径是什么?我有一个表单,其中我使用输入文件控件提供特定文件夹的路径。提交表单时,应在web服务器上创建表单中选定文件夹下的任何文件和文件夹层次结构。如果文件夹包含任何文件,则该文件应自动传输到服务器。有可能实现这样的功能吗

上载文件时,通常仅获取文件名和文件内容。您通常也不会获得整个客户端磁盘文件系统路径。由于安全缺陷,只有较差的MSIE webbrowser才会错误地发送此信息,但您应该在
/
\
上删除此信息,并仅以文件名结束,或者如果您使用的是Apache Commons FileUpload,则通过
FilenameUtils#getName()

至于服务器端文件夹结构,只需将上传的文件以唯一名称存储在固定文件夹中即可。不要不必要地创建其他文件夹,当然,除非该文件夹用于标识登录用户或其他内容。您可以使用
File#createTempFile()
根据文件名前缀和文件名后缀(扩展名)创建唯一的文件名,以避免上载的文件同时覆盖相同的名称

至于服务器端上载文件夹位置,请确保它不在服务器文件夹结构中的webapp部署文件夹中。每次重新部署webapp时,这都会丢失,原因很简单,上传后新添加/更改的文件不包含在待部署的WAR中

至于提供文件,只需将上载文件夹位置作为另一个虚拟主机添加到服务器配置中即可。不清楚“ApacheWeb服务器”到底是什么意思,因为Apache是一家巨大的软件公司,开发了许许多多的软件产品。你是说ApacheHTTPD吗?阿帕奇雄猫?阿帕奇·托米?ApacheGeronimo?等在JSP/Servlet上下文中,我假设ApacheTomcat。那么请回答这个问题: