【发布时间】:2018-01-11 00:47:02
【问题描述】:
我正在尝试创建一个应用程序,用户可以在其中将文件上传到“墙”。这个想法并不重要。每个文件都作为用户配置文件下的 [fileName : url) 添加到存储和数据库中。由于数据库中字符串的限制,我保留没有扩展名的文件名(不能使用点符号)。上传工作正常,但我在删除时遇到问题。根据用户在应用程序中选择删除的文件,我得到文件名(不带扩展名)。我的删除功能应该从存储中删除文件,但由于缺少扩展名而无法找到文件。 我用这个函数上传数据:
let uploadTask = ref.putData(contents as Data, metadata: myMetadata, completion: { (metadata, error) in ...}
和文件本身:
let contents = try Data(contentsOf: url.standardizedFileURL)
是否可以在没有扩展名的情况下上传“内容”?或者也许我还缺少另一种方法?
感谢您的提示。
【问题讨论】:
-
你能用“.”代替吗将 url 存储为字符串时使用另一个符号的符号,然后在调用删除函数时将其换出?像“|”或者其他的东西?如果用户试图删除“image|jpg”,你只需交换 |为一个 。并删除“image.jpg”?
-
感谢您的回复!这是我现在唯一的解决方案。然而,这意味着在应用程序中用户会看到不合适的“test|jpg”。这就是为什么我试图找到不同的解决方案。
-
根据您向用户呈现内容的方式,您可以设置一个“翻译器”——例如,如果
||代表.,则调用此“翻译器”来呈现其中一个到用户/ URL。 (并且由于一段时间的“URL编码”是%2E,也许可以做到这一点?)
标签: swift firebase firebase-realtime-database firebase-storage