koj*_*ow7 3 post x-sendfile react-native
我在前端使用 React-native,在服务器上使用 PHP 后端。我需要能够向我想要从中下载文件的服务器发送密码。我正在连接到一个 PHP 脚本,该脚本使用 X-SendFile 库在密码正确的情况下将文件发回。
目前我正在使用 RNFS.downloadFile() 下载和保存文件,但这似乎只适用于 GET 而不适用于 POST。我希望能够将文件保存到 DocumentDirectoryPath。
我当前的代码如下所示:
await RNFS.downloadFile({
fromUrl: 'http://example.com/myfile.zip',
toFile: RNFS.DocumentDirectoryPath + "/userdata/myfile.zip",
}).promise
Run Code Online (Sandbox Code Playgroud)
我希望能够做这样的事情:
await RNFS.downloadFile({
method: post,
body: {passcode: "abc123", filename: "myfile.zip"},
fromUrl: 'http://example.com/getfile.php',
toFile: RNFS.DocumentDirectoryPath + "/userdata/myfile.zip",
}).promise
Run Code Online (Sandbox Code Playgroud)
如何更改我的代码,以便将密码作为 POST 参数传递?
从以下文件的第 58 行到第 70 行可以看出,react-native-fs 不支持您想要实现的目标。
FS.common.js @react-native-fs github 页面
但是,还有其他库可以帮助您。react-native-fetch-blob 支持您尝试以以下格式实现的目标;
RNFetchBlob
.config({
path : RNFetchBlob.fs.DocumentDir + '/userdata/myfile.zip'
})
.fetch(
'POST',
'http://example.com/myfile.zip',
{
//headers...
},
JSON.stringify({
//request body...
passcode: "abc123",
filename: "myfile.zip"
}),
)
.then((res) => {
console.log('The file saved to ', res.path())
})
Run Code Online (Sandbox Code Playgroud)
虽然它应该以这种方式工作,但我建议您在尝试下载文件和使用 GET 请求时不要诉诸于此并使用身份验证模式进行身份验证,例如 HTTP 基本身份验证和其他数据的查询字符串/标头。
| 归档时间: |
|
| 查看次数: |
3557 次 |
| 最近记录: |