Downloading videos from iPhone device doesn't work, but works fine on Simulator. ERROR: "Unable to read file",

I am trying to download video from iPhone device as:

var uploadTask = self.session?.uploadTaskWithRequest(request, fromFile:NSURL(string: assetFilePath.path)!)

      

This code runs on a simulator and provides a session task object that I can resume. But it doesn't work on iPhone.

He does not work:

2015-05-19 18:36:44.718 myApp[327:24703] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Cannot read file at file:///var/mobile/Media/DCIM/100APPLE/IMG_0144.mp4'

      

I tried to check if the video file has read access, but it returns false on iPhone:

fileManager.fileExistsAtPath(asset.path)  // returns false

      

Has anyone encountered this before or am I doing something wrong here?

The code I am using to get the file path:

    let options = PHFetchOptions()
    options.sortDescriptors = [
        NSSortDescriptor(key: "creationDate", ascending: true)
    ]
    currentVideofetch = PHAsset.fetchAssetsWithMediaType(.Video, options: options)
    let asset = self.currentVideofetch.objectAtIndex(indexPath.row) as? PHAsset  
    var assetLength:NSNumber!
    var assetFilePath:NSString!

    if let checkdAsset = asset {
        PHImageManager.defaultManager().requestImageDataForAsset(checkdAsset,options: nil) {
            imageData,dataUTI,orientation,info in

            assetLength = imageData.length as NSNumber
            let assetFilePathUrl  = info["PHImageFileURLKey"] as? NSURL
            assetFilePath = assetFilePathUrl!.absoluteString! 
            println("Assets FilePath \(assetFilePath)") // returns file:///var/mobile/Media/DCIM/100APPLE/IMG_0144.mp4
        }
    }

      

+3


source to share


1 answer


After a mess with the lot. This is a classic iOS permissions issue. Unfortunately, I have not received direct answers to this. We had to copy the file to our local directory of my application. After that, everything works like a charm. But in the case of a large file, I am posting a copy of the file logic in a background job.



+1


source







All Articles