首页 > 解决方案 > 在将文件上传到 iOS 的服务器之前设置文件大小限制

问题描述

我正在从本地 iPhone 照片库上传媒体(图像、视频、音频)。现在,问题是文件太大了。有没有办法对要上传的文件设置以下限制 1. 最大文件大小限制为 2MB。2. 如果文件大于 2MB,则将文件大小减小到 2MB。3. 如果文件大小小于 2MB,直接上传即可。

标签: iosswiftassets

解决方案


对于图像/视频,您可以使用此代码以字节为单位获取大小

资产是 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)
        }
    }

推荐阅读