Please provide the following:
- SDK Version: 38
- Platforms(Android/iOS/web/all):Android
Hi @notbrent @bacon i think their is a minor typo in expo file system docs for FileSystem.uploadAsync(url, fileUri, options) this is the order of parameters to be sent as per the documentation but it does not work, i tried this FileSystem.uploadAsync( fileUri, url, options) with this it did search for the file uri and not the upload url, but the issue still is that, it says, Directory for /document/primary:Download/random100-livai.zip doesn’t exist. When i tried to check using FileSystem.getInfoAsync(fileUri, options), i got ,
Object {
"exists": true,
"isDirectory": false,
"size": 1999675,
"uri": "content://com.android.externalstorage.documents/document/primary%3ADownload%2Frandom100-livai.zip",
}
But while uploading the file it says (Directory for /document/primary:Download/random100-livai.zip doesn’t exist.)
Can you please help me out with this, Thank You.
Ive also tried to use readFileAsStringAsync, but somehow that too it not working for me,
let op = {
encoding: FileSystem.EncodingType.Base64
}
try {
let res = await FileSystem.readAsStringAsync(file.uri, op)
console.log(res)
} catch (err) {
console.log(err)
}
Unsupported scheme for location 'content://com.android.externalstorage.documents/document/primary%3ADCIM%2FGame%20media%2FExpo%2FExpo_2019-07-06-17-50-12.jpg'
let options = {
type: "application/zip",
// copyToCacheDirectory: false
}
try {
let file = await DocumentPicker.getDocumentAsync(options)
console.log(file)
this.setState({ file })
} catch (err) {
console.log(err)
}
I just commented out the copyToCacheDirectory from picker options, and i started to get uri as file://, so the below error is gone
(Directory for /document/primary:Download/random100-livai.zip doesn't exist.)
But now im getting,
java.lang.Double cannot be cast to java.lang.Integer
- node_modules/react-native/Libraries/BatchedBridge/NativeModules.js:103:50 in promiseMethodWrapper
- node_modules/@unimodules/react-native-adapter/build/NativeModulesProxy.native.js:15:23 in moduleName.methodInfo.name
- node_modules/expo-file-system/build/FileSystem.js:115:17 in uploadAsync
- node_modules/regenerator-runtime/runtime.js:45:36 in tryCatch
- node_modules/regenerator-runtime/runtime.js:271:29 in invoke
- node_modules/regenerator-runtime/runtime.js:45:36 in tryCatch
- node_modules/regenerator-runtime/runtime.js:135:27 in invoke
- node_modules/regenerator-runtime/runtime.js:170:16 in Promise$argument_0
- node_modules/promise/setimmediate/core.js:45:6 in tryCallTwo
- node_modules/promise/setimmediate/core.js:200:22 in doResolve
- node_modules/promise/setimmediate/core.js:66:11 in Promise
- node_modules/regenerator-runtime/runtime.js:169:15 in callInvokeWithMethodAndArg
- node_modules/regenerator-runtime/runtime.js:192:38 in enqueue
- node_modules/regenerator-runtime/runtime.js:216:8 in exports.async
- node_modules/expo-file-system/build/FileSystem.js:110:7 in uploadAsync
* src/screens/ProjectManagementScreen.js:114:18 in _uploadFile
- node_modules/regenerator-runtime/runtime.js:45:36 in tryCatch
- node_modules/regenerator-runtime/runtime.js:271:29 in invoke
- node_modules/regenerator-runtime/runtime.js:45:36 in tryCatch
- node_modules/regenerator-runtime/runtime.js:135:27 in invoke
- node_modules/regenerator-runtime/runtime.js:145:18 in Promise.resolve.then$argument_0
- node_modules/promise/setimmediate/core.js:37:13 in tryCallOne
- node_modules/promise/setimmediate/core.js:123:24 in setImmediate$argument_0
- node_modules/react-native/Libraries/Core/Timers/JSTimers.js:135:14 in _callTimer
- node_modules/react-native/Libraries/Core/Timers/JSTimers.js:183:16 in _callImmediatesPass
- node_modules/react-native/Libraries/Core/Timers/JSTimers.js:446:30 in callImmediates
* [native code]:null in callImmediates
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:396:6 in __callImmediates
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:144:6 in __guard$argument_0
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:373:10 in __guard
- node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:143:4 in flushedQueue
* [native code]:null in flushedQueue
* [native code]:null in invokeCallbackAndReturnFlushedQueue
Attaching my code below
let headers = {
'content-type': 'multipart/form-data',
Authorization: token
}
let options = {
headers: headers,
httpMethod: "POST",
uploadType: FileSystem.FileSystemUploadType.MULTIPART,
fieldName: "file"
}
try {
let upload = await FileSystem.uploadAsync(file.uri, endpoint, options)
console.log(upload)
} catch (err) {
console.log(err)
}
Sorry for editing this constantly, but ive been trying it for hours, thought would be better to update will the latest problem. Thanks