ios - 节点快速设置以接收使用 iOS Swift/Objective-C 协议发送的文件 uploadTaskWithRequest:fromFile:completionHandler:
问题描述
我正在努力使用 Node Express 中间件设置来接收使用 iOS NSURLSessionUploadTask 方法 uploadTaskWithRequest:fromFile:completionHandler 上传的文件:
iOs 代码看起来像这样并且完美运行,因为我从服务器获得了 200 状态响应:
NSURLSessionUploadTask *uploadtask = [[NSURLSession sharedSession] uploadTaskWithRequest:serverURLrequest fromFile:localFileURL completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSInteger status = [httpResponse statusCode];
... etc
}];
然而,在 Express 中接收到的 req 没有任何 req.file 并且 req.body 是空的。所有在线 Express 示例都采用通过创建模仿表单提交的标题来伪造多部分表单提交的方法,然后他们将文件数据的字符串表示粘贴到边界字符串之间的正文中。然后,这些示例使用 iOS 代码“uploadTaskWithRequest: fromData ”将所有这些放在 req.body 中 - 然后在 Express 应用程序中,像 Multer 这样的中间件被用来拆开这个结构并生成一个文件。
我不想使用 uploadTaskWithRequest:fromData 因为许多文件都很大并且可能超过 POST 正文大小限制。然而,关于 uploadTaskWithRequest:fromFile 的 iOS 文档没有说明 HTTP POST 的构造方式以及文件在 POST 请求中“去往”的位置。
请任何了解 uploadTaskWithRequest:fromFile 和 Node Express 的人解释如何使用 uploadTaskWithRequest: fromFile从 iOS 接收上传的文件。谢谢。
同样,我必须强调没有带有表单输入的 HTML,并且我不想将文件内容作为 POST 正文中的数据作为模拟的多部分表单发送。我想简单地将通过 uploadTaskWithRequest:fromFile 上传的文件接收到 Express 中,以及要设置的 POST 头文件(上传的文件是文本文件)。谢谢
解决方案
推荐阅读
- pyspark - 如何使用 rdd.sum() 从 pyspark 中的文本文件中查找 RDD 中特定单词的总数
- c - SDL_Mixer 缺少文件
- python - 基于比较其他数据帧值生成一个带有布尔列的新数据帧
- python - 如何在 python pandas 中删除查询的键值?
- javascript - Vuetify v-progress-linear(不确定)不更新
- php - 按客户电子邮件或姓名搜索订单
- ios - 如何在 Swift 中也有返回类型的嵌套函数封闭中返回父函数
- android-studio - Android Studio IDE:如何仅在 Flutter 中调试我的代码?
- audio - Bandcamp 嵌入式播放器看起来模糊
- jquery - 如何为 dataTable 中的不同操作选择图像?