2016-05-20 2 views
0

私はswift 2を使用してアプリケーションを作成しています。バックグラウンドセッションで私のサーバーに写真とビデオをアップロードする必要があります。それは言うuploadTaskWithRequestバックグラウンドセッションfromFileクラッシュ

  let uploadTask = backgroundSession.uploadTaskWithRequest(request, fromFile: postingFile.url) 

がキャッチされない例外により 'NSInvalidArgumentException'、理由にアプリを終了:ラインで

 let configuration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier(SessionProperties.identifier) 
     //let configuration = NSURLSessionConfiguration.defaultSessionConfiguration(); 

     let queue = NSOperationQueue.mainQueue() 

     // To limit to 1 upload at a time 

     queue.maxConcurrentOperationCount = 1 

     let backgroundSession = NSURLSession(configuration: configuration, delegate: self, delegateQueue: queue) 

     for postingFile in postingFileList { 

      let request = NSMutableURLRequest(URL: NSURL(string: NetworkUtil().serverUrl+"/upload/upload/v1.0/events/\(postingFile.event.id)/files/\(postingFile.file.id)?frag-start=0&frag-size=\(postingFile.fileSize)")!) 

      request.HTTPMethod = "POST" 

      request.setValue("Keep-Alive", forHTTPHeaderField: "Connection") 

      let uploadTask = backgroundSession.uploadTaskWithRequest(request, fromFile: postingFile.url) 

      //let uploadTask = backgroundSession.uploadTaskWithRequest(request, fromFile: postingFile.url, completionHandler: { (NSData, NSURLResponse, NSError) in 
      // print("completion handler") 
      //}) 

      uploadTask.resume() 
     } 

このコードのクラッシュ:そのため、私はこのコードを書く「ことができませんファイル:///var/mobile/Media/DCIM/100APPLE/IMG_0361.JPG '

バックグラウンドセッションを使用しない場合は、代わりにこの設定を使用してください:

let configuration = NSURLSessionConfiguration.defaultSessionConfiguration(); 

クラッシュやアップロードが行われていません。

ファイルからのバックグラウンドセッションで何が起こったのか分かりませんか?

答えて

1

これは権限の問題である可能性があります。バックグラウンドプロセスからサンドボックス化されていないファイルURLにアクセスしようとしています。ファイルをサンドボックスディレクトリにローカルに移動し、バックグラウンドでアップロードしてみてください。

+0

私のエラーは違っていましたが、それはまさに私のものでした。そこにある2つの方法のいずれかを使用して、サンドボックス内のドキュメントディレクトリに移動してみてください。これらの2つの方法が参考になります:https://stackoverflow.com/questions/6761321/what-is-the-difference-between-writetofile-and-writetourl – Alyoshak

関連する問題