diff --git a/examples/simple_file/home.html b/examples/simple_file/home.html index de5ed2c5..4689af5e 100644 --- a/examples/simple_file/home.html +++ b/examples/simple_file/home.html @@ -7,7 +7,12 @@

EWF simple_file example

This is a static html file served by EWF.

Try to get lost.

- +
  • +
  • see big.png
  • +
  • see huge.png
  • +
  • see 5mb.txt
  • +
  • see 10mb.txt
  • +
  • see 100mb.txt
  • diff --git a/examples/simple_file/service_file_execution.e b/examples/simple_file/service_file_execution.e index 1fc98f91..ce57c16a 100644 --- a/examples/simple_file/service_file_execution.e +++ b/examples/simple_file/service_file_execution.e @@ -18,11 +18,31 @@ feature {NONE} -- Initialization local mesg: WSF_RESPONSE_MESSAGE not_found: WSF_NOT_FOUND_RESPONSE + s: STRING + n: INTEGER do if request.path_info.is_case_insensitive_equal_general ("/") then create {WSF_FILE_RESPONSE} mesg.make_html ("home.html") elseif request.path_info.is_case_insensitive_equal_general ("/ewf.png") then create {WSF_FILE_RESPONSE} mesg.make_with_content_type ({HTTP_MIME_TYPES}.image_png ,"ewf.png") + elseif request.path_info.is_case_insensitive_equal_general ("/big.png") then + create {WSF_FILE_RESPONSE} mesg.make_with_content_type ({HTTP_MIME_TYPES}.image_png ,"big.png") + elseif request.path_info.is_case_insensitive_equal_general ("/huge.png") then + create {WSF_FILE_RESPONSE} mesg.make_with_content_type ({HTTP_MIME_TYPES}.image_png ,"huge.png") + + elseif request.path_info.ends_with_general ("mb.txt") then + s := request.path_info + s.remove_head (1) + s.remove_tail (6) + if s.is_integer then + n := s.to_integer + end + build_txt_file (n) + create {WSF_FILE_RESPONSE} mesg.make_with_content_type ({HTTP_MIME_TYPES}.text_plain , n.out + "mb.txt") +-- elseif request.path_info.is_case_insensitive_equal_general ("/5mb.txt") then +-- create {WSF_FILE_RESPONSE} mesg.make_with_content_type ({HTTP_MIME_TYPES}.text_plain ,"5mb.txt") +-- elseif request.path_info.is_case_insensitive_equal_general ("/10mb.txt") then +-- create {WSF_FILE_RESPONSE} mesg.make_with_content_type ({HTTP_MIME_TYPES}.text_plain ,"10mb.txt") else create not_found.make (request) not_found.add_suggested_location (request.absolute_script_url (""), "Home", "Back to home page") @@ -32,4 +52,33 @@ feature {NONE} -- Initialization response.send (mesg) end + build_txt_file (a_nb_mb: INTEGER) + local + f: RAW_FILE + i: INTEGER + s: STRING + do + create f.make_with_name (a_nb_mb.out + "mb.txt") + if not f.exists then + f.create_read_write + from + i := 1 + until + i > 10_000 * a_nb_mb + loop + s := i.out + from + until + s.count >= 9 + loop + s.prepend_character ('_') + end + f.put_string (s) + f.put_string (":01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678%N") + i := i + 1 + end + f.close + end + end + end