Servlet - 文件上传
-
简述
Servlet 可以与 HTML 表单标签一起使用,以允许用户将文件上传到服务器。上传的文件可以是文本文件或图像文件或任何文档。 -
创建文件上传表单
以下 HTM 代码创建了一个上传者表单。以下是要记下的要点 --
表格 method 属性应该设置为 POST 方法和GET方法不能使用
-
表格 enctype 属性应该设置为 multipart/form-data.
-
表格 action属性应设置为 servlet 文件,该文件将处理后端服务器上的文件上传。以下示例正在使用UploadServlet servlet 上传文件。
-
要上传单个文件,您应该使用一个带有属性 type="file" 的 <input .../> 标签。要允许上传多个文件,请为 name 属性包含多个具有不同值的输入标签。浏览器将浏览按钮与每个按钮相关联。
这将显示以下结果,允许从本地 PC 中选择文件,当用户单击“上传文件”时,表单将与所选文件一起提交 - -
-
编写后端 Servlet
以下是servlet UploadServlet这将负责接受上传的文件并将其存储在目录 <Tomcat-installation-directory>/webapps/data 中。也可以使用外部配置添加此目录名称,例如context-param web.xml 中的元素如下 -下面是 UploadServlet 的源代码,它可以一次处理多个文件上传。在继续之前,请确保以下事项 --
以下示例取决于 FileUpload,因此请确保您拥有最新版本的 commons-fileupload.x.x.jar类路径中的文件。您可以从https://commons.apache.org/fileupload/下载它。
-
FileUpload 依赖于 Commons IO,因此请确保您拥有最新版本的 commons-io-x.x.jar类路径中的文件。您可以从https://commons.apache.org/io/下载它。
-
在测试以下示例时,您应该上传一个小于maxFileSize的文件,否则文件将不会被上传。
-
确保您已经提前创建了目录 c:\temp 和 c:\apache-tomcat8.0.28\webapps\data。
-
-
编译和运行 Servlet
编译上面的 servlet UploadServlet 并在 web.xml 文件中创建所需的条目,如下所示。现在尝试使用您在上面创建的 HTML 表单上传文件。当您尝试 http://localhost:8080/UploadFile.htm 时,它会显示以下结果,这将帮助您从本地计算机上传任何文件。File Upload:Select a file to upload:如果您的 servlet 脚本工作正常,您的文件应该上传到 c:\apache-tomcat8.0.28\webapps\data\ 目录中。