apache / apache/cordova-plugin-file-transfer

Camera Images fail to upload on iPhone

Open
#238 14 comments 0 reactions 0 assignees View on GitHub
support
Dominant language
JavaScript
Stars
606
Forks
874
PR merge metrics
No merged PRs in 30d

Description

# Bug Report

## Problem

### What is expected to happen?
I'm able to successfully upload an image selected from library. I expect to capture an image and successfully upload an image from the camera in the same way as the library selection.

### What does actually happen?
When I select camera and upload image from the camera I always get a 500 error. However, the image never makes it to my server so there isn't an error on the server side.

## Information

### Command or Code

```
else if (this.platform.is('ios') && sourceType === this.camera.PictureSourceType.CAMERA) {
console.log('iPhone camera!');

var currentName = imagePath.substr(imagePath.lastIndexOf('/') + 1);
var correctPath = imagePath.substr(0, imagePath.lastIndexOf('/') + 1);
let fileTransfer: FileTransfer = new FileTransfer()
let options: FileUploadOptions = {
fileKey: 'image',
fileName: currentName,
chunkedMode: false,
headers: {
"Application": "MyApp",
"Authorization": "Bearer " + localStorage.getItem(StorageKey.AccessToken)
}
}
fileTransfer.create().upload(normalizeURL(imagePath), encodeURI(this.uploadLink), options, true).then(result => {
console.log('File transfer result: ', result);
}).catch(err => {
console.log('Error with file transfer: ', err);
});
}
```

### Environment, Platform, Device

iPhone XR
iOS: 12.3.1

### Version information

Ionic:

Ionic CLI : 5.2.1 (/usr/local/lib/node_modules/ionic)
Ionic Framework : ionic-angular 3.9.5
@ionic/app-scripts : 3.2.2

Cordova:

Cordova CLI : 9.0.0 (cordova-lib@9.0.1)
Cordova Platforms : ios 5.0.1
Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.3, (and 27 other plugins)

Utility:

cordova-res : not installed
native-run : 0.2.7

System:

Android SDK Tools : 26.1.1 (/Users/travis.bradfield/Library/Android/sdk)
ios-deploy : 1.9.4
ios-sim : 8.0.1
NodeJS : v10.15.0 (/usr/local/bin/node)
npm : 6.9.2
OS : macOS Mojave
Xcode : Xcode 10.2.1 Build version 10E1001

## Checklist

- [x] I searched for existing GitHub issues
- [ ] I updated all Cordova tooling to most recent version
- [x] I included all the necessary information above

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the camera upload on an iPhone XR with iOS 12.3.1, then inspect the camera-specific branch using FileTransfer.create().upload(), normalizeURL(), and the provided image-path handling. Compare it with the working library-selection path and verify that the captured image reaches the server without a 500 error.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.