如何以字节为单位获取 pdf 的大小并将其分配给 Data 变量?

Posted

技术标签:

【中文标题】如何以字节为单位获取 pdf 的大小并将其分配给 Data 变量?【英文标题】:How to get the size of pdf in bytes and assign it to the Data variable? 【发布时间】:2020-01-27 15:39:08 【问题描述】:

我已经像下面这样定义了 documentPicker,但我现在想获取上传的 pdf 的大小(以字节为单位)。

func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL])
self.parent.docData = // here the assigned value should be the size of the pdf


例如,它在如下图像的情况下工作:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) 
            let image = info[.originalImage] as! UIImage
            let picdata = image.jpegData(compressionQuality: 0.25)
            self.parent.picData = picdata!
            self.parent.picker.toggle()
        

【问题讨论】:

【参考方案1】:

let bcf = ByteCountFormatter() bcf.allowedUnits = [.useBytes] bcf.countStyle = .file let string = bcf.string(fromByteCount: Int64(picdata.count)) 根据[.useBytes]此字段的要求更改大小单位。希望这可以帮助。

【讨论】:

感谢您的回复,但由于我将值 string 分配给了 self.parent.docData = string,它显示了不匹配的数据类型。 显然它正在返回一个字符串,尝试picdata.countdata 值分配给另一个data picData 它可以工作,但我需要像 picData 一样定义 docData。我得到你尝试零字节的情况 好吧,使用下面的一个来转换你拾取的文件转换成datalet data = try! Data(contentsOf: urls[0])我认为data是由document Picker从你的文件中创建的数据文件。 请问哪一个?我想要的是,从firestore的urls.first获取文档的大小(以字节为单位)并将其分配给self.parent.docData

以上是关于如何以字节为单位获取 pdf 的大小并将其分配给 Data 变量?的主要内容,如果未能解决你的问题,请参考以下文章

汇编 x86 从任何文件读取并转义所有特殊字符并以字节为单位获取文件大小

如何使用 PHP 和 GD 获取图像资源大小(以字节为单位)?

如何以 MB(兆字节)为单位获取文件的大小?

从文件中获取矩阵并将其分配给具有最大大小的数组

如何在 Ant 目标中使用文件大小

在顶点中获取 Blob / String 的大小(以字节为单位)?