如何在 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 异常

最终保存 PFFile

离线 Parse.com 时如何在 localdatastore 中保存图像 PFFile?

在一个 PFFile 中获取两个数据

在 Swift 中解析 PFFile 下载顺序 iOS