download static method
Future<void>
download(
- String fileUrl,
- String filePath, {
- required dynamic callback(
- DownloadState value
- ProgressCallback? onProgress,
- Map<
String, dynamic> ? queryParameters, - CancelToken? cancelToken,
- bool deleteOnError = true,
- String lengthHeader = Headers.contentLengthHeader,
- dynamic data,
- Options? options,
Using Dio to realize file download function
Implementation
static Future<void> download(
String fileUrl,
String filePath, {
required Function(DownloadState value) callback,
ProgressCallback? onProgress,
Map<String, dynamic>? queryParameters,
CancelToken? cancelToken,
bool deleteOnError = true,
String lengthHeader = Headers.contentLengthHeader,
dynamic data,
Options? options,
}) async {
callback(DownloadState.none);
try {
callback(DownloadState.downloading);
final Response<dynamic> response = await _dio().download(
fileUrl,
filePath,
onReceiveProgress: onProgress,
queryParameters: queryParameters,
cancelToken: cancelToken,
deleteOnError: deleteOnError,
lengthHeader: lengthHeader,
data: data,
options: options,
);
callback(response.statusCode == 200 ? DownloadState.done : DownloadState.fail);
} catch (e) {
callback(DownloadState.error);
}
}