Ren*_*azo 9 flutter flutter-web
我面临的主要问题是(在 Web 平台上):
我正在使用 Flutter 为 Android 和 Web 平台开发应用程序。我设法上传了一个文件(二维码的图像),但我使用的是 qr_code_tools 插件,我需要提供这样的文件路径:
resultDecodeStr = await QrCodeToolsPlugin.decodeFrom(path);
Run Code Online (Sandbox Code Playgroud)
这是如何上传图像文件的代码(在网络平台上):
Future<File> pickFile() async {
final Map<String, dynamic> data = {};
final FileUploadInputElement input = FileUploadInputElement();
input..accept = 'image/*';
input.click();
await input.onChange.first;
if (input.files.isEmpty) return null;
return input.files[0];
}
Run Code Online (Sandbox Code Playgroud)
返回的文件对象有一个属性“relativePath”,它是空的。
在 Android 上,我使用了类似的东西,但它确实有一个路径,如果没有,我可以获得一个临时目录(使用 path_provider)并创建一个新文件(使用 dart.Io)。但这对网络来说是不可能的,两个插件(path_provider 和 dart Io)都没有兼容性......
请我希望得到一些帮助...
使用您提供的库,看起来不可能做您想做的事情。将文件上传到网络与在设备上上传不同,因为您获得的 dart:html 文件副本与 dart:io 文件具有不同的限制/属性。查看该库后,它看起来并不支持从字节解码(并且仅从路径),由于浏览器安全性的工作方式,您无法做到这一点(您无法访问文件系统,但有可能将来会这样)。要在浏览器中工作,它应该允许从字节解码(因为您可以读取 dart:html 文件的字节)。另请参阅:使用 JavaScript 访问本地文件
因此,您要么必须分叉该库并制作自己的字节解码器,要么使用完全不同的库来支持 Web。
| 归档时间: |
|
| 查看次数: |
3115 次 |
| 最近记录: |