I got answer
static Future<String> fileUpload({required File file, OnUploadProgressCallback? onUploadProgress}) async {
//assert(file != null);
//debugger();
final url = '$baseUrl/api/file';
final fileStream = file.openRead();
int totalByteLength = file.lengthSync();
final httpClient = getHttpClient();
final request = await httpClient.postUrl(Uri.parse(url));
request.headers.set(HttpHeaders.contentTypeHeader, ContentType.binary);
request.headers.add("filename", file_util.basename(file.path));
request.contentLength = totalByteLength;
int byteCount = 0;
Stream<List<int>> streamUpload = fileStream.transform(
StreamTransformer.fromHandlers(
handleData: (data, sink) {
byteCount += data.length;
if (onUploadProgress != null) {
onUploadProgress(byteCount, totalByteLength);
// CALL STATUS CALLBACK;
}
sink.add(data);
},
handleError: (error, stack, sink) {
debugPrint(error.toString());
},
handleDone: (sink) {
sink.close();
// UPLOAD DONE;
},
),
);
await request.addStream(streamUpload);
final httpResponse = await request.close();
if (httpResponse.statusCode != 200) {
throw Exception('Error uploading file');
} else {
return await readResponseAsString(httpResponse);
}
}
Its working fine