Index: pkg/http/lib/src/multipart_file.dart |
diff --git a/pkg/http/lib/src/multipart_file.dart b/pkg/http/lib/src/multipart_file.dart |
index d316e2acf4792f131c6c92be414bb68f654f3ae2..220c28633f4cb59b7e63817e3a7fd6d6c614096a 100644 |
--- a/pkg/http/lib/src/multipart_file.dart |
+++ b/pkg/http/lib/src/multipart_file.dart |
@@ -5,9 +5,10 @@ |
library multipart_file; |
import 'dart:async'; |
-import 'dart:convert'; |
import 'dart:io'; |
+import 'dart:convert'; |
+import 'package:http_parser/http_parser.dart'; |
import 'package:path/path.dart' as path; |
import 'package:stack_trace/stack_trace.dart'; |
@@ -28,7 +29,7 @@ class MultipartFile { |
final String filename; |
/// The content-type of the file. Defaults to `application/octet-stream`. |
- final ContentType contentType; |
+ final MediaType contentType; |
/// The stream that will emit the file's contents. |
final ByteStream _stream; |
@@ -44,17 +45,17 @@ class MultipartFile { |
/// [contentType] currently defaults to `application/octet-stream`, but in the |
/// future may be inferred from [filename]. |
MultipartFile(this.field, Stream<List<int>> stream, this.length, |
- {this.filename, ContentType contentType}) |
+ {this.filename, MediaType contentType}) |
: this._stream = toByteStream(stream), |
this.contentType = contentType != null ? contentType : |
- new ContentType("application", "octet-stream"); |
+ new MediaType("application", "octet-stream"); |
/// Creates a new [MultipartFile] from a byte array. |
/// |
/// [contentType] currently defaults to `application/octet-stream`, but in the |
/// future may be inferred from [filename]. |
factory MultipartFile.fromBytes(String field, List<int> value, |
- {String filename, ContentType contentType}) { |
+ {String filename, MediaType contentType}) { |
var stream = new ByteStream.fromBytes(value); |
return new MultipartFile(field, stream, value.length, |
filename: filename, |
@@ -68,16 +69,11 @@ class MultipartFile { |
/// [contentType] currently defaults to `text/plain; charset=utf-8`, but in |
/// the future may be inferred from [filename]. |
factory MultipartFile.fromString(String field, String value, |
- {String filename, ContentType contentType}) { |
- contentType = contentType == null ? new ContentType("text", "plain") |
+ {String filename, MediaType contentType}) { |
+ contentType = contentType == null ? new MediaType("text", "plain") |
: contentType; |
- var charset = contentType.charset; |
- var encoding = encodingForCharset(contentType.charset, UTF8); |
- // Make a new contentType with ensured charset. |
- contentType = new ContentType(contentType.primaryType, |
- contentType.subType, |
- charset: encoding.name, |
- parameters: contentType.parameters); |
+ var encoding = encodingForCharset(contentType.parameters['charset'], UTF8); |
+ contentType = contentType.change(parameters: {'charset': encoding.name}); |
return new MultipartFile.fromBytes(field, encoding.encode(value), |
filename: filename, |
@@ -91,7 +87,7 @@ class MultipartFile { |
/// defaults to `application/octet-stream`, but in the future may be inferred |
/// from [filename]. |
static Future<MultipartFile> fromPath(String field, String filePath, |
- {String filename, ContentType contentType}) { |
+ {String filename, MediaType contentType}) { |
if (filename == null) filename = path.basename(filePath); |
var file = new File(filePath); |
return Chain.track(file.length()).then((length) { |