2015-06-03 3 views
0

Я хочу загрузить файл, который был недавно загружен (в моем приложении) из DocumentPicker (например, iCloud, Dropbox, ...) Итак, у меня есть NSURL (urlToFile) этот файл (проверено)Alamofire не отправляет запрос на загрузку (вообще не установлено соединение)

Я использую этот код для загрузки:

upload(.POST, Config.uploadURL, urlToFile!) 
    .progress { (bytesWritten, bytesWrittenInTotal, bytesToBeWritten) -> Void in 
    println("Bytes: \(bytesWrittenInTotal)") 
    } 
    .responseString{(request, response, JSON, error) in 
    println(request) 
    println(response) 
    println(JSON)} 

Там нет никакой связи загрузки вообще. Php-файл, который получает загрузку, имеет функцию регистрации, поэтому каждый вызов файла регистрируется. Код, показанный выше, никогда не устанавливает соединение.

Это выход я получаю:

{ URL: http://correctURLtoThePHPScript }

nil

nil

Сообщение об ошибке:

The operation couldn’t be completed. Is a directory

Я думал, что это связано с documentPicker(controller: UIDocumentPickerViewController, didPickDocumentAtURL url: NSURL) возвращения fileUrl с слэш. Но даже если я удалю эту завершающую косую черту с помощью кода ниже, я получаю такое же сообщение об ошибке!

let s = url.URLString 
let strippedUrl = s.substringToIndex(advance(s.startIndex, count(s)-1)) 
urlToFile = NSURL(string: strippedUrl) 

Решение: использование urlToFile = NSURL(fileURLWithPath: strippedUrl) !!

+0

Пожалуйста, распечатайте параметр ошибки, чтобы мы могли отлаживать этот код. Также: 'Config.uploadURL' правильный, не так ли? –

+0

Благодарим за быстрый ответ. Ошибка: _Error: Необязательно (Error Domain = NSPOSIXErrorDomain Code = 21 "Операция не может быть выполнена. Является ли каталог" UserInfo = 0x7fd3b261b9d0 {_kCFStreamErrorCodeKey = 21, _kCFStreamErrorDomainKey = 1}) _ – gutenmorgenuhu

+0

Похоже, что URL-адрес вашего файла действительно является URL-адресом в каталоге? –

ответ

0

Подытоживая все комментарии:

  • всегда распечатать/слушать NSError значения, возвращаемые из Alamofire (или Core Data, или что-нибудь еще). Единственный способ, которым они могут общаться на ваш код через эти ошибки
  • проблема заключалась в том, что путь к файлу окончилась разделителем пути, то есть /path/to/my/file.txt/
  • удалить обижая / в конце:
let s: NSString = "/path/to/my/file/" as NSString 
s.substringToIndex(s.length-1) 
+0

Еще раз спасибо. Я реализовал это сейчас, но я все равно получаю ту же ошибку! Я обновил свой вопрос, чтобы предоставить дополнительную информацию – gutenmorgenuhu

Смежные вопросы