Bir önceki yazımızda TUS File upload işleminden ve nasıl kullanıldığından bahsetmiştik.Bir önceki yazımızı okumak için buraya tıklayabilirsiniz.
TUS File Upload işleminde IOS kütüphanesinde bir hata mevcut ve bu hata tam olarak çözümlenmedi. Uzun uğraşlar sonrası ben hatayı çözdüm ama daha belirtmedim.Hatayı açıklayacak olursam ilk dosya yükleme işleminden sonra ikinci yükleme işlemini yapmıyor. Bunun sebebini kütüphane içerisinde kaybolsamda buldum. TUS File Upload IOS Yükleme işlemini statü olarak devam ettirmektedir.
İlk yükleme işleminde statü durumunu ready çekmediği için ikinci dosya yükleme işlemini başlatamıyordu. TUS File Upload IOS işlemi hakkında daha fazla bilgi edinmek için tıklayınız.İlk olarak yapmamız gereken işlem pod olarak Tus File Upload kütüphanesi eklemektir.
pod 'TUSKit','~> 2.0.7.alpha'
Bu işlemin ardından ViewController sınıfına TUSDelegate implement etmemiz gerekmektedir.
MainView.swift
var tusClient = TUSClient.shared
override func viewDidLoad() {
TUSClient.shared.delegate = self
}
func uploadImage(){
//Bu kısımda liste olarak tuttuğumuz imageleri döngü olarak sırası ile sunucumuza yüklüyoruz.
//3 farklı biçimde dosyalarınızı sunucuya iletebilirsiniz.
for i in selectedImages {
if let img = i.IMG?.jpegData(compressionQuality: 0.5){
let uploadObject = TUSUpload(withId:i.FILENAME ?? "" , andData:img , andFileType: "image/jpeg")
tusClient.createOrResume(forUpload: uploadObject)
}
}
}
func TUSProgress(bytesUploaded uploaded: Int, bytesRemaining remaining: Int) {
hud.textLabel.text = "Dosya yükleniyor.\n\(uploaded)/\(remaining)"
hud.indicatorView = JGProgressHUDIndeterminateIndicatorView()
hud.show(in: self.view, animated: true)
}
func TUSProgress(forUpload upload: TUSUpload, bytesUploaded uploaded: Int, bytesRemaining remaining: Int) {
}
func TUSSuccess(forUpload upload: TUSUpload) {
hud.textLabel.text = "Dosya yüklendi."
hud.indicatorView = JGProgressHUDIndeterminateIndicatorView()
hud.show(in: self.view, animated: true)
numOfUploaded+=1
var fullName : String = upload.uploadLocationURL?.absoluteString ?? ""
if(!fullName.isEmpty){
let fullNameArr : [String] = fullName.components(separatedBy: "/")
print(fullNameArr[4])
reqBody.append(fullNameArr[4] ?? "")
}
if(recordedAudio.count + selectedImages.count == numOfUploaded){
uploadServices(reqBody: reqBody)
reqBody = [String]()
}
tusClient.cancel(forUpload: upload) //Cancel a specific upload
tusClient.cancelAll() //Cancel all uploads
tusClient.cleanUp(forUpload: upload)
tusClient.status = .ready
}
func uploadServices(reqBody : [String]){
//Bu fonksiyon ile sunucudan gelen dosya isimlerini servise ileteceğiz ve servis sunucuya iletilen dosya ile bizim ilettiğimiz dosya isimlerini eşleyecek kayıt altına alacaktır.
}
AppDelegate
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
var config = TUSConfig(withUploadURLString: Strings.shared.uploadUrl, andSessionConfig: URLSessionConfiguration.default)
config.logLevel = .All // Set logging on
TUSClient.setup(with: config)
return true
}
TUS File upload işlemi bu şekilde daha fazla bu tarz yazılar gelmesini istiyorsanız yorum yazabilir ve istediğiniz konuları belirtebilirsiniz. Aklınıza takılan soruları yorum kısmında sorabilirsiniz. Yeni sitemiz
www.el-harezmi.com göz atabilirsiniz.İyi kodlamalar.
0 Yorumlar
Bizimle fikirlerinizi paylaşabilirsiniz.