2015-07-06 17 views
6

Hızla öğreniyorum ve bir görüntü gösteren hücreler içeren bir tablo ve MIME TYPE (yol uzantısı kullanarak) tarafından gruplar halinde sınıflar yaptım. Uzantıları hakkında bir sorum var. Eğer görüntüler (örneğin, bir video veya pdf olabilir) internetten alınırsa, uzantılarının olup olmadığından emin değilim veya dosya sistemimdeki bir dosyanın MIME tipini nasıl alabilirim yol uzantısı mı kullanıyorsunuz? Not: Eğer NSData olarak veri alma varsayarsak benim anadilimYol uzantısı ve MIME dosya türünü hızlı bir şekilde

cevap

3

değil benim kötü İngiliz Maalesef bu Yayınla izleyin: Swift ise https://stackoverflow.com/a/5042365/2798777

örneğin: herkes Eğer

var c = [UInt32](count: 1, repeatedValue: 0) 
(data as! NSData).getBytes(&c, length: 1) 
switch (c[0]) { 
case 0xFF, 0x89, 0x00: 
    println("image") 
case 0x47: 
    println("gif") 
default: 
    println("unknown: \(c[0])") 
} 
+0

Bir çekicilik gibi çalışır! – kennydust

14

Bu kod benim için çalıştığı dosyanın gerçek URL'sinden MimeType almak istiyor:

import MobileCoreServices 

func mimeTypeForPath(path: String) -> String { 
    let url = NSURL(fileURLWithPath: path) 
    let pathExtension = url.pathExtension 

    if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension! as NSString, nil)?.takeRetainedValue() { 
     if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() { 
      return mimetype as String 
     } 
    } 
    return "application/octet-stream" 
} 
+1

Bu hatayı aldım: Çözülmemiş tanımlayıcı 'UTTypeCreatePreferredIdentifierForTag' kullanımı –

+0

@amirt 'import MobileCoreServices' – Lukas

+0

En iyi cevap diğerleri arasında bulundu. Hepsi bir tür listesi kullanırlar. Teşekkürler – Ismail

İlgili konular