gpt4 book ai didi

ios - 无法从服务器下载附件作为响应

转载 作者:可可西里 更新时间:2023-11-01 02:26:03 25 4
gpt4 key购买 nike

我在 Alamofire 中使用 post 方法成功上传了一个文件,我得到了服务器的响应,我可以看到响应中隐藏了附件。当我试图将附件保存在我的计算机中时,它不起作用。这是代码:

let urlRequest = urlRequestWithComponents(URL, parameters: parameters, imageData: fileData!)
Alamofire.upload(urlRequest.0, urlRequest.1)
.progress { (bytesWritten, totalBytesWritten, totalBytesExpectedToWrite) in
println("\(totalBytesWritten) / \(totalBytesExpectedToWrite)")
}
.response { (request, response, data, error) in
println("REQUEST \(request)")
println("RESPONSE \(response)")
println("JSON \(data)")
println("ERROR \(error)")

这是我从服务器得到的附件中的文件:

"Content-Disposition" = "attachment; filename=20150113171557120001.mid";

数据显示了正确的 .mid 文件

JSON Optional(<4d546864 00000006 00000001 00044d54 726b0000 00540391 35350381 35350291 3a3a0281 3a3a0291 3c3c0381 3c3c0191 3e3e0381 3e3e0691 3e3e0381 3e3e0891 3e3e0381 3e3e0291 3c3c0381 3c3c0191 3d3d0381 3d3d0191 3a3a0381 3a3a0691 3a3a0381 3a3a00ff 2f00>)

ERROR nil

这是我用来在我的计算机中保存附件的代码:

let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSArray
let documentsDirectory = paths.objectAtIndex(0) as NSString
let path = documentsDirectory.stringByAppendingPathComponent("file.mid")
(data as NSData).writeToFile(path, atomically:true)

我添加保存附件的代码后,没有错误或警告,输出时除了一个线程显示如下:

thread1 exc_breakpoint(code=exc_i386_BPT, subcode=0x0)

我是否使用了错误的方法来保存附件?

最佳答案

看看你的十六进制表示,它看起来像一个 MIDI 文件(它以正确的字节开头)。

问题是:

let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSArray
let documentsDirectory = paths.objectAtIndex(0) as NSString

您两次获得“第一项”。您尝试作为 paths 返回的项目不是路径数组,而是该数组中的第一个字符串(因为您在末尾包含了 [0]) .因此,将其转换为数组的尝试将失败(更不用说稍后从中获取第一项的尝试)。

更简单的是:

let documentsDirectory = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String

关于ios - 无法从服务器下载附件作为响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27996333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com