Security News
GitHub Removes Malicious Pull Requests Targeting Open Source Repositories
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
react-native-background-upload
Advanced tools
Cross platform http post file uploader with android and iOS background support
The only React Native http post file uploader with android and iOS background support. If you are uploading large files like videos, use this so your users can background your app during a long upload.
npm install react-native-background-upload
react-native link react-native-background-upload
Add Files to <...>
node_modules
➜ react-native-background-upload
➜ ios
➜ select VydiaRNFileUploader.xcodeproj
VydiaRNFileUploader.a
to Build Phases -> Link Binary With Libraries
Add the following lines to android/settings.gradle
:
include ':react-native-background-upload'
project(':react-native-background-upload').projectDir = new File(settingsDir, '../node_modules/react-native-background-upload/android')
Add the compile line to the dependencies in android/app/build.gradle
:
dependencies {
compile project(':react-native-background-upload')
}
Add the import and link the package in MainApplication.java
:
import com.vydia.RNUploader.UploaderReactPackage; <-- add this import
public class MainApplication extends Application implements ReactApplication {
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new UploaderReactPackage() // <-- add this line
);
}
}
Ensure Android SDK versions. Open your app's android/app/build.gradle
file. Ensure compileSdkVersion
and targetSdkVersion
are 25. Otherwise you'll get compilation errors.
Two big things happened in version 2.0. First, thehe Android package name had to be changed, as it conflicted with our own internal app. My bad. Second, we updated the android upload service dependency to the latest, but that requires the app have a compileSdkVersion and targetSdkVersion or 25.
To upgrade:
In MainApplication.java
:
Change
```java
import com.vydia.UploaderReactPackage;
```
to
```java
import com.vydia.RNUploader.UploaderReactPackage;
```
Then open your app's android/app/build.gradle
file.
Ensure compileSdkVersion
and targetSdkVersion
are 25.
Done!
import Upload from 'react-native-background-upload'
const options {
url: 'https://myservice.com/path/to/post',
path: 'file://path/to/file/on/device',
method: 'POST',
headers: {
'my-custom-header': 's3headervalueorwhateveryouneed'
},
// Below are options only supported on Android
notification: {
enabled: true
}
}
Upload.startUpload(options).then((uploadId) => {
console.log('Upload started')
Upload.addListener('progress',uploadId, (data) => {
console.log(`Progress: ${data.progress}%`)
})
Upload.addListener('error',uploadId, (data) => {
console.log(`Error: ${data.error}%`)
})
Upload.addListener('completed',uploadId, (data) => {
console.log(`Completed!`)
})
}).catch(function(err) {
console.log('Upload error!',err)
});
Does it support iOS camera roll assets?
No, they must be converted to a file asset. The easist way to tell is that the url should always start with 'file://'. If not, it won't work. Things like react-native-image-picker provide you with both. PRs are welcome for this.
Does it support multiple file uploads?
Yes and No. It supports multiple concurrent uploads, but only a single upload per request. That should be fine for 90%+ of cases.
Why should I use this file uploader instead of others that I've Googled like react-native-uploader?
This package has two killer features not found anywhere else (as of 12/16/2016). First, it works on both iOS and Android. Others are iOS only. Second, it supports background uploading. This means that users can background your app and the upload will continue. This does not happen with other uploaders.
Thanks to:
android-upload-service It made Android dead simple to support.
MIME type from path on iOS Thanks for the answer!
FAQs
Cross platform http post file uploader with android and iOS background support
The npm package react-native-background-upload receives a total of 930 weekly downloads. As such, react-native-background-upload popularity was classified as not popular.
We found that react-native-background-upload demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.