Я использую React-native-windows для создания Windows-версии приложения реакции, и я пытаюсь загрузить файл, а затем создать данные base64 для этого файла.
Я использую @ foqum / реагировать-native-document-picker для загрузки файла.Он работает нормально.
И я использую реагировать-родной-фс , чтобы получить данные base64 загруженного файла.
const res = await DocumentPicker.pick({
type: [DocumentPicker.types.allFiles],
});
console.log(
res.uri,
res.type, // mime type
res.name,
res.size
);
var url = res.uri;
RNFS.readFile(url, 'base64')
.then((result) => {
Alert.alert("", "File Uploaded successfully.");
})
.catch((err) => {
Alert.alert("", "File not uploaded.")
});
} catch (err) {
if (DocumentPicker.isCancel(err)) {
// User cancelled the picker, exit any dialogs or menus and move on
} else {
Alert.alert("", "File not uploaded.")
throw err;
}
}
После загрузки файла вызывается RNFS.readFile
, эта функция вызывает функцию Windows, см. прикрепленное изображение, но эта функция не может прочитать загруженный файл.
using (var file = new FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) )
Получена ошибка неавторизованного доступа.
Я добавил все необходимые разрешения в package.appxmanifest
файле.
<uap:Capability Name="picturesLibrary" />
<uap:Capability Name="videosLibrary" />
<rescap:Capability Name="broadFileSystemAccess" />
, но все еще получаю ошибку несанкционированного доступа.
Пожалуйста, см. Прикрепленное изображение.
Я также пытался StorageFile
, но эта строка также выдает ту же ошибку.
StorageFile folder = await StorageFile.GetFileFromPathAsync(filepath);
Может кто-нибудь знает, как решить эту ошибку.