Использование дротика для загрузки файла
Можем ли мы использовать 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 загружается внизу в представлении терминала, это наше загруженное изображение.
это наше фактическое изображение, которое мы скачали.