瀏覽代碼

save_response_to_file option extended to support appending to an existing file

pull/38/head
Alexey Romanov 14 年之前
父節點
當前提交
0e42656980
共有 2 個檔案被更改,包括 8 行新增2 行删除
  1. +1
    -1
      src/ibrowse.erl
  2. +7
    -1
      src/ibrowse_http_client.erl

+ 1
- 1
src/ibrowse.erl 查看文件

@ -286,7 +286,7 @@ send_req(Url, Headers, Method, Body) ->
%% Sock_opts = [Sock_opt]
%% Sock_opt = term()
%% ChunkSize = integer()
%% srtf() = boolean() | filename()
%% srtf() = boolean() | filename() | {append, filename()}
%% filename() = string()
%% response_format() = list | binary
send_req(Url, Headers, Method, Body, Options) ->

+ 7
- 1
src/ibrowse_http_client.erl 查看文件

@ -357,7 +357,8 @@ accumulate_response(Data,
tmp_file_fd = undefined} = CurReq,
http_status_code=[$2 | _]}=State) when Srtf /= false ->
TmpFilename = make_tmp_filename(Srtf),
case file:open(TmpFilename, [write, delayed_write, raw]) of
Mode = file_mode(Srtf),
case file:open(TmpFilename, [Mode, delayed_write, raw]) of
{ok, Fd} ->
accumulate_response(Data, State#state{
cur_req = CurReq#request{
@ -434,8 +435,13 @@ make_tmp_filename(true) ->
integer_to_list(B) ++
integer_to_list(C)]);
make_tmp_filename(File) when is_list(File) ->
File;
make_tmp_filename({append, File}) when is_list(File) ->
File.
file_mode({append, _File}) -> append;
file_mode(_Srtf) -> write.
%%--------------------------------------------------------------------
%% Handles the case when the server closes the socket

Loading…
取消
儲存