如何以字节为单位获取 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.count
将data
值分配给另一个data
。
picData 它可以工作,但我需要像 picData 一样定义 docData。我得到你尝试零字节的情况
好吧,使用下面的一个来转换你拾取的文件转换成data
let data = try! Data(contentsOf: urls[0])
我认为data是由document Picker从你的文件中创建的数据文件。
请问哪一个?我想要的是,从firestore的urls.first获取文档的大小(以字节为单位)并将其分配给self.parent.docData以上是关于如何以字节为单位获取 pdf 的大小并将其分配给 Data 变量?的主要内容,如果未能解决你的问题,请参考以下文章
汇编 x86 从任何文件读取并转义所有特殊字符并以字节为单位获取文件大小