file - Dart 和客户端文件处理(授权)

标签 file dart angular-dart

服务器端应用程序需要对文件下载链接进行授权。这意味着正常 <a ng-href="{{createLinkToFile()}}">不再足以将足够的参数传递给服务器。

当尝试使用程序调用文件下载时,我将响应数据返回给 Dart 客户端应用程序。使用简单的 http GET:

    var url = "http://example.com/file";
    headers.putIfAbsent("Authorization", () => "bearer " + token;
    _http.get(url: url, headers : headers);

GET 返回的 future 将保存数据,但我如何指示浏览器将其下载为文件,而不是仅仅试图将其保存在内存中?

或者有什么方法可以在普通链接中做到这一点?

最佳答案

从服务器下载数据后,如 Using Dart to Download a PNG File (Binary File) and displaying it not working 所示您可以创建一个下载链接,如 http://blog.butlermatt.me/2014/03/dynamically-generating-download-files/ 所示

import 'dart:html';
void main() {
  List body = [ 'Some test data ...\n'];

  // Create a new blob from the data.
  Blob blob = new Blob(body, 'text/plain', 'native');
  // Create a data:url which points to that data.
  String url = Url.createObjectUrlFromBlob(blob);
  // Create a link to navigate to that data and download it.
  AnchorElement link = new AnchorElement()
      ..href = url
      ..download = 'random_file.txt'
      ..text = 'Download Now!';

  // Insert the link into the DOM.
  var p = querySelector('#text');
  p.append(link);
}

关于file - Dart 和客户端文件处理(授权),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29674913/

相关文章:

c - 文件交错、文件扫描、文件打印

java - 复制给定 url 的文件

flutter - 在 Flutter 中使用 ListView 或 CustomScrollView 在顶部添加新元素时如何保持滚动位置

android - 如何在flutter中根据不同的屏幕尺寸对齐堆栈内的小部件

java - 为什么这不会在 Android 的文本文件中创建新行?

c++ - 从标准输入 C++ 读取数百万整数的最快方法?

Flutter:如何使对话框的按钮居中?

dart - 用Angular Dart和Polymer Dart设计 Material 。编译问题

dart - 如何在 AngularDart 中从其父组件引用子组件

dart - AngularDart路由,其中​​参数包含斜杠