模型类
class MultipartUpdataData: NSObject
{
var mediaData:Data!
var mediaUploadKey:String!
var fileName:String!
var mimeType:String!
override init()
{
}
required init(coder aDecoder: NSCoder) {
if let mediaData = aDecoder.decodeObject(forKey: "mediaData") as? Data {
self.mediaData = mediaData
}
if let mediaUploadKey = aDecoder.decodeObject(forKey: "mediaUploadKey") as? String {
self.mediaUploadKey = mediaUploadKey
}
if let fileName = aDecoder.decodeObject(forKey: "fileName") as? String {
self.fileName = fileName
}
if let mimeType = aDecoder.decodeObject(forKey: "mimeType") as? String {
self.mimeType = mimeType
}
}
open func encodeWithCoder(_ aCoder: NSCoder)
{
if let mediaData = self.mediaData{
aCoder.encode(mediaData, forKey: "mediaData")
}
if let mediaUploadKey = self.mediaUploadKey {
aCoder.encode(mediaUploadKey, forKey: "mediaUploadKey")
}
if let mimeType = self.mimeType {
aCoder.encode(mimeType, forKey: "mimeType")
}
if let fileName = self.fileName {
aCoder.encode(fileName, forKey: "fileName")
}
}
}
上传图片,首先确保将 imageData 附加到数组中,然后调用此函数,如下所示:-
var uploadMediaList = [MultipartUpdataData]()
for loop{
let multiObject = MultipartUpdataData()
multiObject.mediaData = self.pngImageData!
multiObject.mimeType = "image/png"
multiObject.mediaUploadKey = "profile_pic" //Replace this key with your existing key.
let profileFilename = self.filename(Prefix: "profile", fileExtension: "png")
multiObject.fileName = profileFilename
uploadMediaList.append(multiObject)
}
self.upload(uploadMediaList)
func upload(multipartImages:[MultipartUpdataData]){
let parameters:[String:String] = ["key":"value"]
Alamofire.upload(
multipartFormData: { multipartFormData in
for mData in multipartImages!{
let pngImageData = mData.mediaData
let uploadfileNamekey = mData.mediaUploadKey
let fileName = mData.fileName!
let mimeType = mData.mimeType!
multipartFormData.append(pngImageData!, withName: uploadfileNamekey!, fileName: fileName, mimeType: mimeType)
}
for (key, value) in parameters {
multipartFormData.append(value.data(using: String.Encoding(rawValue: String.Encoding.utf8.rawValue), allowLossyConversion: true)!, withName: key)
}
},
to: "\(url)",
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
let json = JSON(data: response.data!)
print("SUCSESS")
}
case .failure(let encodingError):
print("ERORR")
}
}
)
}
//MARK:-filename-
func filename(Prefix:String , fileExtension:String)-> String
{
let dateformatter=DateFormatter()
dateformatter.dateFormat="MddyyHHmmss"
let dateInStringFormated=dateformatter.string(from: NSDate() as Date )
return NSString(format: "%@_%@.%@", Prefix,dateInStringFormated,fileExtension) as String
}