2012-06-28 48 views
0

如何訪問UIImagePickerControllerReferenceURL的MIME分機部分?這是我所得到的,當我的NSLog - (空)imagePickerController:(*的UIImagePickerController)選擇器didFinishPickingMediaWithInfo:(NSDictionary的*)信息從UIImagePickerControllerReferenceURL訪問分機

UIImagePickerControllerReferenceURL = "assets-library://asset/asset.PNG?id=F61B754A-705C-4BFB-9965-DE34C7B93A2B&ext=PNG"; 

我只是想訪問的MIME類型。當我發送圖像到我的網絡服務器使用:

NSData *imageData = UIImageJPEGRepresentation(_selectedImage, 1.0); 

//non-important ASIFormDataRequest set-up 
[request setData:imageData withFileName:uniqueString andContentType:@"image/jpeg" forKey:@"photo"]; 

圖片進來搞亂了。但是,當我使用:

NSData *imageData = UIImagePNGRepresentation(_selectedImage); 

//non-important ASIFormDataRequest set-up 
[request setData:imageData withFileName:uniqueString andContentType:@"image/png" forKey:@"photo"]; 

圖片進來罰款。但是,我上傳的所有照片不會是PNG。

回答

1

Dimitris在這個thread上的回答就像一個魅力。我將繼續打字,所以這不會被降級爲一個簡單的答案,然後自動發表評論。

0

請嘗試以下代碼從UIImagePickerControllerReferenceURL

NSURL *referenceURL = @"assets-library://asset/asset.PNG?id=F61B754A-705C-4BFB-9965-DE34C7B93A2B&ext=PNG"; //put your reference URL here 
NSString *fileExtension = [referenceURL.absoluteString componentsSeparatedByString:@"ext="][1]; 
1

提取extension要迅速獲取圖像擴展:

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 
      if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage { 
       let assetPath = info[UIImagePickerControllerReferenceURL] as! NSURL 
       let ext = assetPath.absoluteString.componentsSeparatedByString("ext=")[1] 
       print(ext) 
     } 
    }