You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Andrew Grieve (JIRA)" <ji...@apache.org> on 2014/06/05 20:53:01 UTC

[jira] [Commented] (CB-6883) iOS: fileSystemURLforArg returns nil for file:// url with spaces

    [ https://issues.apache.org/jira/browse/CB-6883?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14019096#comment-14019096 ] 

Andrew Grieve commented on CB-6883:
-----------------------------------

If a URL has a space in it, then it's a malformed URL. I think with your change, a properly formatted URL (one with %20 in it), would end up double-escaped. Arguably, we could be more forgiving for malformed URLs by doing a search-and-replace for spaces->%20

> iOS: fileSystemURLforArg returns nil for file:// url with spaces 
> -----------------------------------------------------------------
>
>                 Key: CB-6883
>                 URL: https://issues.apache.org/jira/browse/CB-6883
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Plugin File
>    Affects Versions: 3.5.0
>         Environment: iOs
>            Reporter: Vladimir Avdonin
>
> For file:// url with spaces, such as any path on iphone simulator, fileSystemURLforArg returns nil. The following change fix the issue:
> diff --git a/src/ios/CDVFile.m b/src/ios/CDVFile.m
> index b22b7cf..2b3a567 100644
> --- a/src/ios/CDVFile.m
> +++ b/src/ios/CDVFile.m
> @@ -348,7 +348,8 @@ NSString* const kCDVFilesystemURLPrefix = @"cdvfile";
>      CDVFilesystemURL* ret = nil;
>      if ([urlArg hasPrefix:@"file://"]) {
>          /* This looks like a file url. Get the path, and see if any handlers recognize it. */
> -        NSURL *fileURL = [NSURL URLWithString:urlArg];
> +        NSString* webStringURL = [urlArg stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
> +        NSURL *fileURL = [NSURL URLWithString:webStringURL];
>          NSURL *resolvedFileURL = [fileURL URLByResolvingSymlinksInPath];
>          NSString *path = [resolvedFileURL path];
>          ret = [self fileSystemURLforLocalPath:path];



--
This message was sent by Atlassian JIRA
(v6.2#6252)