我有一个用Objective-C编写的macOS应用程序,它使用多部分请求将文件上传到服务器。它将文件数据存储在名为'文档的字段中,并添加一个附加字段,数据库'进入标题:
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"document\"; database=\"%s\"\r\n", DATABASE] dataUsingEncoding:NSUTF8StringEncoding]];
我正在为我几年来使用的简单脚本编写Vapor替代品。在服务器上的PHP中,为了提取字段'数据库'的值,我使用:
$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\""
现在只需要提取我感兴趣的位!
答案 0 :(得分:0)
事实证明,您可以为Vapor设置/访问的唯一非文件字段是filename
中名为multipart/form-data
的字段。所以,我通过添加另一部分并将字段放入其中来实现我想要做的事。