如何在 Swift 中“正确”保存 PFFile 并检索 url
Posted
技术标签:
【中文标题】如何在 Swift 中“正确”保存 PFFile 并检索 url【英文标题】:How to "properly" save PFFile in Swift and retrieve url 【发布时间】:2015-12-07 05:16:14 【问题描述】:我在 Parse.com 上遇到了困难。
我通过我的应用程序保存了一个 PFFile,使用以下代码...(截断为相关信息。)
let alertXMLFile = PFObject(className: "Message")
do
alertXMLFile["alertFile"] = try PFFile(name: "alertFile.xml", data: data!)
catch
print("upload fail")
alertXMLFile.saveInBackgroundWithBlock (success: Bool, error: NSError?) -> Void in
当我访问网络并查看文件时,我单击它并下载它而不是在浏览器中显示。 (如果我复制链接并粘贴到另一个浏览器,也会发生下载)我可以获取下载的文件,通过网络将其上传到我的班级,单击它,它会显示在浏览器中。我的应用程序也将正确识别手动上传的文件 并按预期执行。
我的问题是,如何通过 Swift 2.1 在 ios 中将 PFFile 保存到 Parse.com,它不会是强制下载的对象,但会像手动上传一样做出反应?
这是一个成功保存文件的链接... http://files.parsetfss.com/277284ac-afb0-445c-b352-863782ca3acd/tfss-0c5b843d-d1cf-4b85-a9f5-aebff98d656c-alertData.xml
【问题讨论】:
【参考方案1】:这种行为通常由服务器发送到浏览器的 MIME Content-Disposition 属性决定。如果图像打算立即被用户查看,则此属性设置为inline
,否则设置为attachment
,这通常会强制您的浏览器下载它。 (参见RFC 2183 中的示例)
我认为通过仪表板手动上传文件时,此 MIME 类型的设置有所不同。我自己没有这样做,但根据文档,您可以创建一个 PFFile 并使用 fileWithName:data:contentType: 设置内容类型
【讨论】:
你的答案的依据是正确的。 (它是一个 xml 文件,而不是图像文件。)我将文件创建行更改为alertXMLFile["alertFile"] = try PFFile(name: "alertFile", data: data!, contentType: "application/xml")
,一切都很好。谢谢!以上是关于如何在 Swift 中“正确”保存 PFFile 并检索 url的主要内容,如果未能解决你的问题,请参考以下文章
Swift 2.0:需要在 Parse 的 PFQueryTableViewController 上显示图像(PFFile)?
使用 aCoder 编码时出现 Swift PFFile 异常