On Dec 17, 2:56 pm, simplicity <stella_pig...@yahoo.ca> wrote:
> I need to upload the local file to the server site in the environment
> where there is no webserver running there, hence no POST method is
> available. All I have at the receiving end is the SOAP server which
> means that I must send the file as the SOAP message containing textual
> representation of bytes, for example:
>
> fileContent = "a b<LF>" must be sent as <data>613262320A</data> where
> 61 is a hex value of 'a', 32 of SPACE, 62 is 'b', 0A is LF etc
>
> I tried replace() but I am running into a problem of premature end of
> array - replace() deals with String types and will do the conversion
> to something like "a%32b%0A" (which can be further processed easily to
> convert all typable characters by their hex values while stripping %
> from non-typable ones) but it will quit on the first accurence of 00
> (null) byte and, no need to mention, the binary file will be full of
> those.
>
> I can step through the fileContent array one byte at a time and
> traverse "special bytes" including null (byte value 0x00) up to the
> length of the file I read but I do not know how to determine what
> exactly the non-typable characters are, that is I can do mapping
>
> if (content[i] == 'a') concatenate "61" to the SOAP message
>
> but I don't know how I can deal with something like <BEL> character
> (byte value 0x07) or any byte value above 0x7F.
>
> Is there a way out of this?
Thanks Marc and Thomas
Both code samples work like a charm until... well it is probably my
fault that my description of the problem contained errors and was far
from accurate.
First you both caught the erroneous info correctly: of course I want
to convert my sample bytes "a b<LF>" into <data>6120620A</data>, then
I experimented with escape() not replace().
Second, a big mistake I made was when I claimed that "I can (...)
traverse "special bytes" including null (byte value 0x00)". The truth
is: all of them except null. I guess I missed that fact because I
buried that null (byte value 00) close to the end of the file and lost
the count


. The reality is that when I put 00 as a first byte, I
read the length of the file as it truly is (in my case study 32 bytes)
but when I read the file into fileContent and step through fileContent
it interprets fileContent[0] = 0 as end of string and every next
fileContent[i] is also returning 0.
As there are only two data types in javascript, strings and numbers,
is there a trick which would allow me to read the file into the array
of numbers which would remove the "special meaning" from all elements
of value 0"? I know what size the file is before I read it, so
allocating the array of correct size will not be a problem.
Stella