Привет всем, я пытаюсь загрузить изображение на FTP-сервер с помощью приложения для iOS в swift.
Я использовал приведенную ниже библиотеку.
FileProvider
Проблема, с которой я сталкиваюсь, заключается в том, что файл, загружаемый на сервер, имеет нулевой размер в байтах.
Я проверил приведенные ниже вопросы, но не смог решить свою проблему.
- первый
- второй
- третий
это код, который я написал.
var ftpProvider: FTPFileProvider?
override func viewDidLoad() {
super.viewDidLoad()
let server: URL = URL(string: "ftp://x.x.x.x/")!
let username = "xxxxx"
let password = "xxxxxxx"
let credential = URLCredential(user: username, password: password, persistence: .forSession)
ftpProvider = FTPFileProvider(baseURL: server, mode: FTPFileProvider.Mode.passive, credential: credential, cache: URLCache())
ftpProvider!.delegate = self
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
guard let chosenImage = info[UIImagePickerControllerOriginalImage] as? UIImage else{
print("RIZK:- issue in picking images ")
return
}
// saving the image as a file fileName.png
_ = SavingManager.shared.saveImage(image: chosenImage)
// getting the local url of the image file
guard let localURL = SavingManager.shared.getSavedImageURL("fileName.png") else{
return
}
//just to check if the image is being returned successfully
guard let imagePreview = SavingManager.shared.getSavedImage(named: "fileName.png") else{
return
}
//getting the file size
SavingManager.shared.getFileSize(localURL.path)
//naming the file
let imageName = "\(DataManager.shared.getArchivedUser()?.lastName ?? "Guest")-\(Int(Date().timeIntervalSince1970)).png"
//uploading the image
let progress = ftpProvider?.copyItem(localFile: localURL, to: "files/\(imageName)", overwrite: true, completionHandler: { (error) in
if error == nil {
print("RIZK:-- Ready to upload")
}else{
print("RIZK:--\(error?.localizedDescription ?? "")")
}
})
print(progress?.fractionCompleted ?? 0)
self.navigationController?.dismiss(animated:true, completion: nil)
}
Я также добавил методы делегатов, но они вообще не доступны,
пожалуйста, если кто-нибудь использовал эту библиотеку, предоставьте помощь.
спасибо