- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我无法在任何地方找到我的问题的答案,所以我想我已经问过了。
我正在使用 Alamofire 3.1.5
上传相当大的图片,我们说的是数百 MB。
有一段代码:
self.manager.upload(.POST, url, headers: headers, multipartFormData: { multipartFormData in
multipartFormData.appendBodyPart(fileURL: generalURL, name: "general", fileName: "general", mimeType: "image/jpeg")
multipartFormData.appendBodyPart(fileURL: img1URL, name: "img1", fileName: "img1", mimeType: "image/jpeg")
multipartFormData.appendBodyPart(fileURL: img2URL, name: "img2", fileName: "img2", mimeType: "image/jpeg")
multipartFormData.appendBodyPart(fileURL: img3URL, name: "img3", fileName: "img3", mimeType: "image/jpeg")
}, encodingCompletion: { encodingResult in
.
.
.
据我了解,Alamofire 通过将这些请求保存到磁盘来处理创建这些请求,以实现更好的 RAM 优化。这很聪明,我真的很高兴。它完美无缺。
另一方面,这意味着它基本上将磁盘上的数据负载加倍。
问题是那些文件没有被删除,它甚至会导致 iOS 默认屏幕警告设备可用空间不足。
我知道如何删除这个目录的内容,但在我目前的代码流程中,在所有请求完成后删除内容是安全的,甚至可能是 100 个请求,每个请求大约需要 20MB 的负载.因此,问题是该设备甚至可能没有存储如此大量数据的能力。
我的问题是:
我可以让 Alamofire 在成功上传后删除这些文件中的每一个吗?
很抱歉,我的问题很长,我会在这里给你发一个土 bean ,但这不是 9gag。
最佳答案
根据这个this issue ,您将需要自行删除它。
很简单,在你得到服务器的响应后删除所有Alamofire生成的文件。这是我的做法:
// Just some upload
Alamofire.upload(
.POST, uploadURL,
multipartFormData: { multipartFormData in
multipartFormData.appendBodyPart(fileURL: somePath, name: "file")
},
encodingCompletion: { encodingResult in
switch encodingResult {
case .Success(let upload, _, _):
upload.responseJSON { response in
if let JSON = response.result.value {
/*** delete temp files Alamofire generated ***/
let temporaryDirectoryPath = NSTemporaryDirectory()
let dir = NSURL(fileURLWithPath: temporaryDirectoryPath, isDirectory: true)
.URLByAppendingPathComponent("com.alamofire.manager")
.URLByAppendingPathComponent("multipart.form.data")
do {
try NSFileManager.defaultManager().removeItemAtPath(dir.path!)
} catch {}
}
}
}
)
关于ios - NSTemporaryDirectory 中的 Alamofire MultiPartForm 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34958052/
我正在使用 jboss 的 rest-easy 多部分提供程序来导入文件。我在这里阅读http://docs.jboss.org/resteasy/docs/1.0.0.GA/userguide/ht
如何使用无服务器框架处理多部分/表单数据? v.0.5.6 刚试过这个: "requestTemplates": { "multipart/form-data": {
我正在学习Spray,使用spray-can和spray-httpx(没有spray-routing)来接受上传的文件。我提出了以下建议: def receive = { ...
我正在使用 Apache HTTPClient 4。我正在做像这样的非常普通的多部分内容: val entity = new MultipartEntity(HttpMultipartMode.BRO
这是一个 RFC 2046使用“边界”边界的多部分八位字节流。 --boundary Content-Type: text/plain; charset="US-ASCII" abc --bounda
我正在尝试构建一个 Excel 文件 uploader 并解析路由中的数据来存储它,但似乎数据在通过 $http 服务路由发送的 FormData 的转换过程中丢失了。我不知道该怎么办!如果您有这方面
此代码是用于处理上传的 RestEasy 代码: @Path("/fileupload") public class UploadService { @POST @Path("/upl
我面临一个问题,我无法在资源中获取表单,变量始终为空 我的资源: @POST @Path("/upload-logo") @Consumes(MediaType.MULTIPA
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我无法在任何地方找到我的问题的答案,所以我想我已经问过了。 我正在使用 Alamofire 3.1.5 上传相当大的图片,我们说的是数百 MB。 有一段代码: self.manager.upl
我正在尝试在 NodeRed 中生成一个 HTTP Webrequest,它将通过正常的上传表单将文件上传到网站。我想我知道如何上传文件,但我不知道如何传递我还必须填写的其他输入字段。 我只找到了如何
我正在将代码从 NodeJS 移植到 python3。我想发布图像二进制数据和文本。我该怎么做 ?谢谢。 NodeJS filePath = "xxx.jpeg" text = "xxx" retur
我有一个可重复的表单域: 这将(使用 jQuery)例如导致 根据用户要上传的文件数量。表单方法是post,enctype是m
我一直在尝试使用@MultipartForm 测试发送byte[] 和InputStream 对象,但是我得到了这两种类型的空对象,有什么想法吗?我正在使用 RestEasy 2.3.5.Final
我想问一个关于多部分/表单数据的问题。我找到了多部分帖子的 http header 和 Content-Type: multipart/form-data;边界=-------边界编号。我想问,bou
我正在使用一个演示 API,它接收文件和注释作为多部分/表单数据输入并显示文件和注释的内容。这是正确运行 API 的示例 HTML: Choose file:
我正在尝试将一个或多个文件 (.doc) 发送到 ASP.NET Web API 2 服务并返回修改后的版本 (.docx)。我能够发送文件并获得响应,但是我在请求中 HTTPContent 的服务中
我正在从 echo.Context 解析一个多部分表单。我使用 form.Value 检索 slice ([]string) 的值。这将返回一个带有双括号的值。 (例如 [["this","somet
任何人都可以解释我如何使用不同类型的数据向 Web 上的 URL 发出 POST 请求,在我的例子中,我有一个图像和两个字符串类型值要发送到 PHP 中的服务器。 这是我已经做过的 var strea
我正在使用 Aurelia Fetch Client 向 Web API 端点发送文件上传请求。但是 IFormFile 是空的所有磁贴。我的代码如下。 客户端 const formData = ne
我是一名优秀的程序员,十分优秀!