From 9b76ea47ff48a92ca295c40301c9620c2e12026a Mon Sep 17 00:00:00 2001 From: seanmcevoy Date: Mon, 29 Jun 2015 21:09:28 +0100 Subject: [PATCH] tweaks due to issues in EE POC --- src/webmachine_multipart.erl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/webmachine_multipart.erl b/src/webmachine_multipart.erl index f7b87903..f2a21482 100644 --- a/src/webmachine_multipart.erl +++ b/src/webmachine_multipart.erl @@ -51,6 +51,8 @@ find_boundary(ReqData) -> % @doc Turn a multipart form into component parts. % @spec get_all_parts(incoming_req_body(), boundary()) -> [fpart()] +get_all_parts(Body, Boundary) when is_list(Body), is_list(Boundary) -> + get_all_parts(list_to_binary(Body), Boundary); get_all_parts(Body, Boundary) when is_binary(Body), is_list(Boundary) -> StreamStruct = send_streamed_body(Body,1024), getparts1(stream_parts(StreamStruct, Boundary), []). @@ -71,6 +73,8 @@ stream_form({Hunk, Next}, Boundary, []) -> stream_form(get_more_data(Next), Boundary, re:split(Hunk, Boundary,[])); stream_form({Hunk, Next}, Boundary, [<<>>|DQ]) -> stream_form({Hunk, Next}, Boundary, DQ); +stream_form({Hunk, Next}, Boundary, [<<"\r\n">>|DQ]) -> + stream_form({Hunk, Next}, Boundary, DQ); stream_form({Hunk, Next}, Boundary, [H|[T1|T2]]) -> {make_part(H), fun() -> stream_form({Hunk, Next}, Boundary, [T1|T2]) end}; @@ -94,7 +98,7 @@ stream_parts([H|T]) -> {make_part(H), fun() -> stream_parts(T) end}. get_more_data(done) -> {<<"--\n">>, really_done}; get_more_data(Fun) -> Fun(). - + make_part(PartData) -> %% Remove the trailing \r\n [HeadData, BodyWithCRLF] = re:split(PartData, "\\r\\n\\r\\n", [{parts,2}]),