angular-dart - AngularDart上传文件转换为base64字符串
问题描述
我正在使用 AngularDart、Angular 5 和 Dart 2。我有一个带有更改操作的文件输入。
<input #inp type="file" id="upload_image" accept="image/*" (change)="handleUpload($event)">
这是我的句柄上传。
Future<void> handleUpload(html.Event e) async {
e.preventDefault();
picfile = (e.target as html.FileUploadInputElement).files[0];
}
我希望能够获取 html.File 对象并将其转换为 io.File 对象,以便我可以对其进行 base64 编码并将其以 JSON 格式传递给我的服务器。我在我的 Flutter 应用程序中做了类似的事情。不知道我错过了什么,但似乎没有什么能让 html.File 对象成为 io.File 对象。
任何帮助将不胜感激。
解决方案
import 'dart:html';
...
var blob = e.target as html.FileUploadInputElement).files[0];
var reader = new FileReader()..readAsArrayBuffer(blob);
await reader.onLoadEnd.first;
List<int> /* or Uint8List */ result = reader.result;
print(result);
在这里您应该能够进行 base64 编码(https://stackoverflow.com/a/36529793/217408)
推荐阅读
- qt - 基于 CMake 的项目,在运行时加载了自定义 QML 插件,仅使用 MinGW 失败
- snakemake - Snakemake 中的 CalledProcessError
- json - 通过 json 的 jquery 循环无法按预期工作
- mysql - SQL 可以单独插入,但不能作为带有外键的文件加载
- azure - 在混合节点池(Windows/Linux)上的 AKS 上忽略 nodeSelector 约束?
- spring-boot - MissingServletRequestParameterException 未使用 @ControllerAdvice 捕获
- apache-spark - spark nlp中的多语言bert
- php - 将日期转换为 datetimelocal 中的值
- nginx - 烧瓶 Nginx HTTP/1.1 302 找到
- javascript - webpack 可以制作超过 1 个 bundle.js 吗?