Использование дротика для загрузки файла

Можем ли мы использовать dart скачать файл?

Например в питоне

5 ответов

Решение

Ответ Шайлен правильный и может даже быть немного короче с Stream.pipe.

import 'dart:io';

main() {
  new HttpClient().getUrl(Uri.parse('http://example.com'))
    .then((HttpClientRequest request) => request.close())
    .then((HttpClientResponse response) => 
        response.pipe(new File('foo.txt').openWrite()));
}

Я часто использую пакет HTTP. Если вы хотите загрузить небольшой файл, вы можете использовать пакет HTTP для более чистого подхода:

import 'package:http/http.dart' as http;

main() {
  http.get(url).then((response) {
    new File(path).writeAsBytes(response.bodyBytes);
  });
}

То, что написал Александр, будет работать лучше для больших файлов. Попробуйте написать вспомогательную функцию для этого, если вам часто приходится загружать файлы.

Пример Python, связанный с этим вопросом, включает запрос содержимого example.com и запись ответа в файл.

Вот как вы можете сделать нечто подобное в Dart:

import 'dart:io';

main() {
  var url = Uri.parse('http://example.com');
  var httpClient = new HttpClient();
  httpClient.getUrl(url)
    .then((HttpClientRequest request) {
      return request.close();
    })
    .then((HttpClientResponse response) {
      response.transform(new StringDecoder()).toList().then((data) {
        var body = data.join('');
        print(body);
        var file = new File('foo.txt');
        file.writeAsString(body).then((_) {
          httpClient.close();
        });
      });
    });
}

Мы можем использовать http.readBytes(url).

файл ожидания (путь).writeAsBytes(ожидание http.readBytes (' https://picsum.photos/200/300/?random'));

Да, прежде всего вам нужно запросить URL-адрес файла, используя библиотеку http dart, например:

Ответный ответ = ожидание получить (Uri.parse(ссылка));

после этого ваш объект Response (ответ) получит этот файл в себя, и вы можете просто записать байты ответа в файл, и этот файл будет вашим загруженным файлом. когда я открываю файл следующим образом:

Файл файл = Файл('image.jpg')

то мы должны отправить байты ответа в этот файл следующим образом:

файл.writeAsBytes(ответ.bodyBytes);

теперь вы успешно загрузили файл изображения. Поздравляю.

дополнительные, например, позвольте мне показать вам пример кода для загрузки файла изображения:

      import 'dart:io';
import 'package:http/http.dart';
main(List<String> args) async {
var link =
  "https://pps.whatsapp.net/v/t61.24694- 
24/72779382_449683642563635_3243701117464346624_n.jpg?ccb=11- 
4&oh=23e3bc2ce3f4940a70cb464494bbda76&oe=619B3B8C";

Response response = await get(Uri.parse(link));
File file = File('image.jpg');
file.writeAsBytes(response.bodyBytes);
}

посмотрите, это код, и файл с именем image.jpg загружается внизу в представлении терминала, это наше загруженное изображение.

Скриншот

это наше фактическое изображение, которое мы скачали.

загруженное изображение

Другие вопросы по тегам