# React Native file upload - Mon 7th Dec, 2020 I had to make C+ handle file uploads. There's a decent library called [react-native-document-picker](https://github.com/rnmods/react-native-document-picker) to help with this. I then use a normal GraphQL mutation to send the file to my backend: ```typescript= <Button variant="secondary" title="Attach file" icon="attach" disabled={Boolean(file)} onPress={() => { // Pick a single file DocumentPicker.pick({ type: [DocumentPicker.types.images, DocumentPicker.types.doc, DocumentPicker.types.pdf], }) .then((res) => { fetch(res.uri) .then((res) => res.blob()) .then((blob) => { uploadFileMutation({ variables: { input: { file: 'blah', }, }, update: () => { setFile(res) }, }) }) }) .catch((error) => { if (DocumentPicker.isCancel(error)) { setFile(null) // User cancelled the picker, exit any dialogs or menus and move on } else { console.warn('error :', error) } }) }} /> ``` ###### tags: `programmingjournal` `2020` `C+` `nominations` `fileupload` `blob`