2017-09-05 1 views
0

J'ai URL de chemin de fichier comme indiqué ci-dessousComment télécharger le fichier pptx depuis l'URL

http://ccidahra.com/wp-content/uploads/2016/03/sample.ppt 

Quand j'ouvre en donner l'option navigateur, il navigateur pour télécharger le fichier. Cela signifie que l'URL est correcte, aussi le fichier téléchargé est ouvert donc le fichier est également correct. Mais quand j'essaye de faire la même chose dans iOS en utilisant le code. Je reçois une erreur. J'ai écrit ci-dessous le code pour télécharger le fichier.

NSString *fullURL = @"http://ccidahra.com/wp-content/uploads/2016/03/sample.ppt"; 
    NSString *encodedURL = [fullURL stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet]]; 
    NSURL *url = [NSURL URLWithString:encodedURL]; 

NSLog(@"fullURL %@",fullURL); 
NSURLSession *sessions = [NSURLSession sharedSession]; 
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url]; 

NSURLSessionDataTask *dataTask = [sessions dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 

    if (!error) { 

     NSString *docPath = [[AppDelegate documentsDirectory] stringByAppendingString:@"/sample.ppt"]; 

     if ([[NSFileManager defaultManager] fileExistsAtPath:docPath]){ 
      [[NSFileManager defaultManager ]removeItemAtPath:docPath error:nil]; 

     } 

     if ([[NSFileManager defaultManager] createFileAtPath:docPath contents:data attributes:nil]) { 
      NSLog(@"file created ar %@",docPath); 
     } 
     else{ 
      NSLog(@"file can not created ar %@",docPath); 
     } 
    }else 
    { 
     NSLog(@"Error %@",error); 
     dispatch_async(dispatch_get_main_queue(), ^{ 
      [MBProgressHUD hideHUDForView:self.view animated:YES]; 
     }); 

     [AlertView showAlertWithTitle:@"Error" withMessage:@"Service error! Please connect to the internet" inViewController:self]; 
    } 
}]; 
[dataTask resume]; 

Je suis en dessous de l'erreur Lors du téléchargement d'un fichier.

Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" UserInfo={NSUnderlyingError=0x608000253fb0 {Error Domain=kCFErrorDomainCFNetwork Code=-1002 "(null)"}, NSErrorFailingURLStringKey=http%3A%2F%2Fccidahra.com%2Fwp-content%2Fuploads%2F2016%2F03%2Fsample.ppt, NSErrorFailingURLKey=http%3A%2F%2Fccidahra.com%2Fwp-content%2Fuploads%2F2016%2F03%2Fsample.ppt, NSLocalizedDescription=unsupported URL} 

aidez-moi à résoudre ce problème. Je veux ouvrir ppt, pptx, fichier doc dans UIWebview.

+0

Pourquoi vous pour cent codant pour l'URL? – rmaddy

+0

L'URL peut être valide, mais le serveur peut également refuser votre demande. Lorsque vous accédez à l'URL dans un navigateur, il se passe beaucoup plus de choses que le simple téléchargement du fichier (par exemple, la présentation de cookies indiquant l'utilisateur auquel vous êtes connecté) –

Répondre

0

Il s'agit déjà d'une URL codée valide. Ne pas encoder l'URL deux fois. Vous transformez les séparateurs de chemin en% 2F et le séparateur de schéma en% 3A, de sorte qu'il ne peut plus trouver le schéma ni les composants de chemin.

0

Swift 3.0 Code de

@IBOutlet weak var myWeb: UIWebView! 

let url = URL(string: "Your URL") 
     let urlRequest = URLRequest(url: url!) 
     myWeb.scalesPageToFit = true 
     myWeb?.loadRequest(urlRequest) 

Objectif C

NSString *urlString = @"Your Url"; 
    NSURL *url = [NSURL URLWithString:urlString]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    _myWeb.scalesPageToFit = true; 
    [_myWeb loadRequest:request];