上传图像而不转换NSData

时间:2015-12-01 04:56:11

标签: ios

我尝试将我的图像上传到服务器转换为NSData,但转换图像需要花费很多时间。

我们可以将图像上传到服务器而无需转换为NSData吗?

3 个答案:

答案 0 :(得分:0)

在开始时,我曾尝试将图像直接发送到服务器。 但是如果我试图发送它就没有将图像转换为数据和字符串,它也无法发送它也是不可能的。因为在服务器中如果我们向服务器发送任何数据,它必须是字符串格式。如果我们直接发送图像,它占用大量空间也不应该是data.Image必须是服务器中的URL或路径。

答案 1 :(得分:0)

这取决于这些图像的来源。例如,如果图像来自照片库,那么,是的,您可以检索原始资产,避免将UIImage转换为NSData的低效过程(这会使资产变大,引入质量损失,丢失元数据等)。

此方案中的关键主页消息不是“如何避免转换为NSData”,而是“如何避免通过UIImage对图像进行往返,然后将其重新转换回一个NSData,而只是检索原始资产。“

但这仅适用于您拥有原始资源的图像(例如照片库中的图像,文档文件夹中的图像等)。在这些情况下,只需抓住原始NSData就可以了。

但如果这是您以编程方式生成的图像(例如UIKit视图的快照),则必须将其转换为NSData。但是如果你可以避免首先通过UIImage进行往返,那么就可以消除这种开销。

答案 2 :(得分:0)

您可以使用blob数据类型存储数据。虽然不强烈推荐。您可以参考这些链接。 BLOB data typehow to use BLOB storage service 因为没有将大型BLOB放在数据库中。将它们放在数据库文件旁边的文件系统中,然后将文件名或URL写入数据库。这将更快,将更有效地使用数据库,将I / O最小化。