文件下载完成后检查内容类型 nsurlsessiondownloadtask

Check content type when file is done downloading nsurlsessiondownloadtask

我正在使用 nsurlsession 来管理下载 image/video 文件。问题是有时请求会出错并且 returns 文本如 "Content not found." 如何确保正在下载的文件实际上是我请求的文件类型? (例如 .jpeg 或 .mp4)

您可以在 URLSessionDataDelegate 方法 didReceive response 中检查响应 属性 mimeType 并检查它是否是 "image/jpg":

func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive response: URLResponse, completionHandler: @escaping (URLSession.ResponseDisposition) -> Void) {
        if response.mimeType == "image/jpg" || response.mimeType == "image/jpeg" {
            completionHandler(.becomeDownload)
        } else {
            // your code when it is not jpeg
        }
    }
}

Swift版本

guard let httpUrlResponse = sessionTask.response as? HTTPURLResponse else {
    return
    
}
guard let mimeType = httpUrlResponse.mimeType else {
    return
}