我知道Alamofire(iOS)允许指定下载目标,但文件会保留在临时目录中,直到下载完成。我们希望能够在此过程中将文件放在文档目录中(并在完成后保留下载文件)。
有人知道这是否可行?
由于
答案 0 :(得分:1)
我无法通过下载任务完成此任务。 Alamofire基本上包含了URLSession,而Alamofire.download包含了URLSessionDownloadTask,我已经尝试过在Alamofire之外使用它了。该文件不会放在您的下载目标中,直到完成为止。
为了实现这一点,我必须使用URLSessionDataTask,并使用重复打开和关闭的am OutputStream / NSOutputStream将数据块按块写入文件,以便刷新它,并且可以在完成之前阅读。这就是我想要完成的事情,它似乎有效,并且工作速度超过了足够快。
答案 1 :(得分:-1)
是,请指定下载位置网址
let destination: DownloadRequest.DownloadFileDestination = { _, _ in
let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let fileURL = documentsURL.appendPathComponent("pig.png")
return (fileURL, [.removePreviousFile, .createIntermediateDirectories])
}
Alamofire.download(urlString, to: destination).response { response in
print(response)
if response.result.isSuccess, let imagePath = response.destinationURL?.path {
let image = UIImage(contentsOfFile: imagePath)
}
}
根据需要更改文档目录路径。