无法访问 Vapor 2 中的多部分 non-file 字段

Unable to access a multipart non-file field in Vapor 2

我有一个用 Objective-C 编写的 macOS 应用程序,它使用多部分请求将文件上传到服务器。它将文件数据存储在一个名为 'document 的字段中,并将一个附加字段 'database' 放入 header:

[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"document\"; database=\"%s\"\r\n", DATABASE] dataUsingEncoding:NSUTF8StringEncoding]];

我正在为我已经使用了几年的简单脚本编写一个 Vapor 替代品。在服务器上的 PHP 中,要提取字段 'database' 的值,我使用:

$database = $_FILES['document']['database'];

我找不到在 Vapor 中执行相同操作的方法。我可以愉快地解压文件本身使用:

guard let filebytes = req.formData?["document"]?.part.body else ...

我尝试过更改字段的顺序等。有人这样做过吗?还是首先有更好的创建请求的方法?谢谢。

编辑:

我取得了一些进步:

req.formData?["document"]?.part.headers["Content-Disposition"]

给予

"form-data; database=\"test\"; name=\"document\""

现在只需要提取我感兴趣的部分!

事实证明,对于 Vapor,您可以 set/access 的唯一非文件字段是 multipart/form-data 中名为 filename 的字段。所以,我通过添加另一个部分并将字段放入其中来实现我想做的事情。