Chromium Code Reviews| Index: pkg/http_server/lib/src/http_multipart_form_data_impl.dart |
| diff --git a/pkg/http_server/lib/src/http_multipart_form_data_impl.dart b/pkg/http_server/lib/src/http_multipart_form_data_impl.dart |
| index daebeec40f6322e9d90035657b6022d31b7052b3..42a34134fd86be953d51f4a1478e253e7f8a15d7 100644 |
| --- a/pkg/http_server/lib/src/http_multipart_form_data_impl.dart |
| +++ b/pkg/http_server/lib/src/http_multipart_form_data_impl.dart |
| @@ -38,17 +38,7 @@ class _HttpMultipartFormData extends Stream implements HttpMultipartFormData { |
| encoding = Encoding.getByName(contentType.charset); |
|
kustermann
2014/11/18 16:34:20
This should be only done
if (contentType != null
Søren Gjesse
2014/11/19 07:41:05
Encoding.getByName returns null if the argument is
|
| } |
| if (encoding == null) encoding = defaultEncoding; |
| - _stream = _stream |
| - .transform(encoding.decoder) |
| - .expand((data) { |
| - buffer.write(data); |
| - var out = _decodeHttpEntityString(buffer.toString()); |
| - if (out != null) { |
| - buffer.clear(); |
| - return [out]; |
| - } |
| - return const []; |
| - }); |
| + _stream = _stream.transform(encoding.decoder); |
| } |
| } |
| @@ -102,41 +92,4 @@ class _HttpMultipartFormData extends Stream implements HttpMultipartFormData { |
| String value(String name) { |
| return _mimeMultipart.headers[name]; |
| } |
| - |
| - // Decode a string with HTTP entities. Returns null if the string ends in the |
| - // middle of a http entity. |
| - static String _decodeHttpEntityString(String input) { |
| - int amp = input.lastIndexOf('&'); |
| - if (amp < 0) return input; |
| - int end = input.lastIndexOf(';'); |
| - if (end < amp) return null; |
| - |
| - var buffer = new StringBuffer(); |
| - int offset = 0; |
| - |
| - parse(amp, end) { |
| - switch (input[amp + 1]) { |
| - case '#': |
| - if (input[amp + 2] == 'x') { |
| - buffer.writeCharCode( |
| - int.parse(input.substring(amp + 3, end), radix: 16)); |
| - } else { |
| - buffer.writeCharCode(int.parse(input.substring(amp + 2, end))); |
| - } |
| - break; |
| - |
| - default: |
| - throw new HttpException('Unhandled HTTP entity token'); |
| - } |
| - } |
| - |
| - while ((amp = input.indexOf('&', offset)) >= 0) { |
| - buffer.write(input.substring(offset, amp)); |
| - int end = input.indexOf(';', amp); |
| - parse(amp, end); |
| - offset = end + 1; |
| - } |
| - buffer.write(input.substring(offset)); |
| - return buffer.toString(); |
| - } |
| } |