在 Web 应用中,上传文件是一个常用的功能。 本文简单介绍在 Vertx-Web 中如何处理文件上传。
在 Vertx-Web 中是通过 Route 来路由 HTTP 请求的, 每个 Route 的处理方法中都提供了一个 RoutingContext 的实例作为参数,在该类中的 fileUploads 方法为我们提供了从前端上传的文件的信息。 如下面代码展示的,
1 | Set<FileUpload> uploads = ctx.fileUploads(); |
fileUploads 方法返回一个包含 FileUpload 对象的集合(为什么是集合?因为可以同时上传多个文件)。
拿到 FileUpload 对象后,我们就可以通过该类的 fileName 方法获取文件(上传时文件的名称),通过 contentType 获取文件类型,通过 size 方法获取文件的大小。
如:
1 | for (FileUpload f: uploads) { |
最后,我们就可以通过 Vertx 中提供的文件访问 API 来读取文件的内容,进而进行处理。
1 | Buffer buffer = Buffer.buffer(length); |
注意,示例代码中没有没有提供异常处理