ios - 在将文件上传到 iOS 的服务器之前设置文件大小限制
问题描述
我正在从本地 iPhone 照片库上传媒体(图像、视频、音频)。现在,问题是文件太大了。有没有办法对要上传的文件设置以下限制 1. 最大文件大小限制为 2MB。2. 如果文件大于 2MB,则将文件大小减小到 2MB。3. 如果文件大小小于 2MB,直接上传即可。
解决方案
对于图像/视频,您可以使用此代码以字节为单位获取大小
资产是 ALAsset 的对象
asset.defaultRepresentation().size()
对于音频,你可以试试这个
从media:MPMediaItem
_MPMediaPickerController
let fileUrl = NSURL(fileURLWithPath: NSTemporaryDirectory() + (media.title!)) as URL!
let asset = AVURLAsset(url: (media.assetURL!))
let exportSession = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetHighestQuality)
exportSession?.outputURL = fileUrl
exportSession?.outputFileType = .mp3
exportSession?.exportAsynchronously {
if exportSession?.status == .completed {
do {
let data = try Data.init(contentsOf: fileUrl!)
do { try data.write(to: fileUrl! as URL)
let size = data.count // in bytes
} catch { print("something wrong.")}
} catch {
print("Something went worng.", exportSession?.status as Any)
}
} else {
print("Something went worng.", exportSession?.status as Any)
}
}
推荐阅读
- javascript - 使用Angular重定向到html中的另一个页面
- javascript - Vue 3 vue-cli,如何为 css/js 使用 CDN url?
- apache-beam - 根据偏移量或偏移量时间戳停止从 Kafka 消费的 Beam 管道
- json - 从 VUE 中的本地 json-server 检索数据
- javascript - Javascript函数返回错误的计算值
- rust - 递归构建迭代器会导致“递归不透明类型”错误
- pygame - Python 3.9.6 屏幕不会显示颜色
- html - (HTML & CSS) 我正在尝试在图像之间添加圆圈,但它们不会垂直居中
- r - 使用R比较两个excel文件
- google-apps-script - Apps 脚本 - 复制和删除超过 6 个月的行