apache / apache/cordova-plugin-file-transfer
Camera Images fail to upload on iPhone
- 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
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