You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Aaron Ruß (JIRA)" <ji...@apache.org> on 2015/09/18 12:37:04 UTC

[jira] [Commented] (CB-7270) Cordova 3.5.0-0.2.4

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

Aaron Ruß commented on CB-7270:
-------------------------------

I am not sure if that is the same problem, but in a plugin I wrote, I had a similar thing that an URI starting with protocol `content:` could not be uploaded via Cordova's file-tranfer plugin.

I suspect this might be due to the `content` protocol URI that file-transfer cannot handle(?)

I solved it with a code-snippet taken from the example code in
http://stackoverflow.com/a/12347567/4278324

basically the `content:` gets resolved to a `file:` URI that can then be uploaded (maybe "resolving" `content:` URIs should be added to the Android file-transfer and file-system plugins?)

```
//input: URI imageUri
String [] proj={MediaStore.Images.Media.DATA};
Cursor cursor = activity.getContentResolver().query(imageUri,
   proj,	// Which columns to return
  null,	// WHERE clause; which rows to return (all rows)
  null,	// WHERE clause selection arguments (none)
  null);	// Order-by clause (ascending by name)
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();

String path = cursor.getString(column_index);
Log.d(TAG, "file path: " + path);
            
File imgFile = new File(path);
Log.d(TAG, "file size = " + imgFile.length());

imageUri = Uri.fromFile(path);
Log.d(TAG, "resolved URI " + imageUri);
```



> Cordova 3.5.0-0.2.4
> -------------------
>
>                 Key: CB-7270
>                 URL: https://issues.apache.org/jira/browse/CB-7270
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Plugin Camera, Plugin File Transfer
>    Affects Versions: 3.5.0
>         Environment: Android
>            Reporter: Mitesh
>
> I am using the the camera plugin:
> Below is the code to demonstrate what I am trying to achieve:
> pictureSource=navigator.camera.PictureSourceType;
> destinationType=navigator.camera.DestinationType;
>     
>     navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50, 
>       destinationType: destinationType.FILE_URI,
>       sourceType: pictureSource.PHOTOLIBRARY });
> function onPhotoURISuccess(imageURI) {
> alert(imageURI);
> // returns 'content:///123456'
> window.resolveLocalFileSystemURL(imageURI, function(fileEntry){
>   alert(fileEntry.toURL());
>   file_url = fileEntry.toURL();
>   // returns 'file:///image.jpg'
>    var options = new FileUploadOptions();
>    options.fileKey = "file";
>    options.fileName =     file_url.substr(file_url.lastIndexOf('/') + 1);
>    // but the file transfer is not working, as the file uri is not in the formate of cdvfile://image.jpg as specified in the file transfer doc.
>    var ft = new FileTransfer();
>    ft.upload($scope.file_url, encodeURI(server_url), win, fail, options);
> })
> }
> Camera image selector on success it is returning the wrong file url, please let me know how to fix this.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org