Le principal problème que je suis confronté est celui-ci (sur la plate-forme Web):
Je développe une application pour Android et la plate-forme Web avec Flutter. Je parvienne à télécharger un fichier (image d'un code QR), mais j'utilise le plugin QR_Code_Tools, et j'ai besoin de fournir Un chemin de fichier comme celui-ci:
resultDecodeStr = await QrCodeToolsPlugin.decodeFrom(path);
Ce code de téléchargement du fichier image (sur la plate-forme Web):
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];
}
L'objet de fichier retourné a une propriété "RelativePath" qui est vide.
ON Android J'utilise quelque chose de similaire, mais il a un chemin, et si vous ne le faites pas, je peux obtenir un répertoire temporaire (avec path_provider) et créer un nouveau fichier (avec dart.io) . Mais cela n'est pas possible pour le Web, les deux plugins (path_provider et dart io) n'ont aucune compatibilité ...
S'il vous plaît, j'apprécierais de l'aide ...
Utilisation de la bibliothèque que vous avez fournie, il ne semble pas que cela soit possible de faire ce que vous voulez. Le téléchargement de fichiers sur le Web est différent de celui d'un périphérique, car vous obtenez une copie d'un fichier DART: HTML qui contient différentes restrictions/propriétés que d'un fichier DART: IO. Après avoir examiné cette bibliothèque, il ne semble pas que cela prend en charge le décodage à partir d'octets (et uniquement à partir d'un chemin), que vous ne pouvez pas faire en raison de la fonctionnement de la sécurité des navigateurs (vous ne pouvez pas accéder au système de fichiers, mais là-bas. est une possibilité de cela à l'avenir ). Pour travailler dans le navigateur, il devrait permettre de décoder à partir d'octets (car vous pouvez lire les octets d'une DART: fichier HTML). Voir aussi: accès au fichier local avec JavaScript
Par conséquent, vous devrez être à fourche la bibliothèque et effectuer votre propre décodeur d'octets ou utiliser une autre bibliothèque pour un support Web.