Cargar un file desde AVCapture utilizando AFNetworking

Tengo un video capturado con AVCapture, y estoy intentando uploadlo con AFNetworking con Swift.

Código:

let manager = AFHTTPRequestOperationManager() let url = "http://localhost/test/upload.php" var fileURL = NSURL.fileURLWithPath(string: ViewControllerVideoPath) var params = [ "familyId":locationd, "contentBody" : "Some body content for the test application", "name" : "the name/title", "typeOfContent":"photo" ] manager.POST( url, parameters: params, constructingBodyWithBlock: { (data: AFMultipartFormData!) in println("") var res = data.appendPartWithFileURL(fileURL, name: "fileToUpload", error: nil) println("was file added properly to the body? \(res)") }, success: { (operation: AFHTTPRequestOperation!, responseObject: AnyObject!) in println("Yes thies was a success") }, failure: { (operation: AFHTTPRequestOperation!, error: NSError!) in println("We got an error here.. \(error.localizedDescription)") }) 

El código anterior falla, sigo recibiendo

 was file added properly to the body? false" 

tenga en count que ViewControllerVideoPath es una cadena que contiene la location del video que es:

 "/private/var/mobile/Containers/Data/Application/1110EE7A-7572-4092-8045-6EEE1B62949/tmp/movie.mov" 

usando println() …. El código anterior funciona cuando println() un file incluido en el directory y uso:

  var fileURL = NSURL.fileURLWithPath(NSBundle.mainBundle().pathForResource("test_1", ofType: "mov")!) 

Definitivamente, mi código PHP está bien, y el problema radica en cargar ese file guardado en el dispositivo, ¿qué estoy haciendo mal aquí?

Los comentarios no permiten una explicación completa, así que aquí hay más información;

NSBundle.mainBundle () se refiere a una ruta en el file de package La ruta en el simulador difiere de la de la aplicación … esto no es lo que desea. Hay una serie de "carpetas" a las que puede acceder según sus necesidades (privadas o compartibles / files que pueden respaldarse en la nube). NSPathUtils.h proporciona un desglose de las routes disponibles. De acuerdo con las convenciones utilizadas por la mayoría, probablemente deberías crear una ruta privada debajo de tu ruta de aplicación haciendo algo así;

  - (NSURL *) applicationPrivateDocumentsDirectory{ NSURL *pathURL = [[self applicationLibraryDirecory]URLByAppendingPathComponent:@"MyApplicationName"]; return pathURL; 

}

  - (NSURL *) applicationLibraryDirecory{ return [[[NSFileManager defaultManager] URLsForDirectory:NSLibraryDirectory inDomains:NSUserDomainMask] lastObject]; 

}

Puede probar si existe, si no, crearlo … luego guarde sus files de video en esta ruta y pase esto a su AVCapture como la location para almacenar el file.

Aquí está el código que puede hacer la siguiente funcionalidad en swift.

1: Verifique si existe o no el directory meteorológico. si no existe, cree directory (Directorio le ha dado el nombre de la aplicación) en la carpeta del directory del documento.

2: ahora tenemos el directory de aplicaciones. por lo que todo el file que desde la aplicación escribirá / leerá en / desde este directory.

  let file = "file.txt" let directoryName = “XYZ” // Here “XYZ” is project name. var error : NSError? let filemgr = NSFileManager.defaultManager() let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) let documentsDirectory = dirPaths[0] as! String var dataPath = documentsDirectory.stringByAppendingPathComponent(directoryName) if !NSFileManager.defaultManager().fileExistsAtPath(dataPath) { NSFileManager.defaultManager().createDirectoryAtPath(dataPath, withIntermediateDirectories: false, attributes: nil, error: &error) } else { println("not creted or exist") } 

Ahora tenemos Directorio, solo necesitamos escribir / leer datos del directory.

cómo escribir un file en el directory de documentos en swift

 let filePath = dataPath.stringByAppendingPathComponent(file); let text = "some text" //writing text.writeToFile(filePath, atomically: false, encoding: NSUTF8StringEncoding, error: nil); 

Cómo leer el file desde el directory de documentos.

 let filePath = dataPath.stringByAppendingPathComponent(file); // Read file let text2 = String(contentsOfFile: filePath, encoding: NSUTF8StringEncoding, error: nil) 

Salida: introduzca la descripción de la imagen aquí

Espero que esto te ayudará.