Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Write binary data using javascript on the server

I'm trying to output a PDF using server side javascript (ASP). The current method I'm using is:

xfile=Server.MapPath(lib.fso.GetTempName())
xf=lib.fopen(xfile,"wb");
lib.fwrite(xf,this.buffer);
lib.fclose(xf);
outB = Server.CreateObject("ADODB.Stream")
outB.Type = 1
outB.Open()
outB.LoadFromFile (xfile)
Response.BinaryWrite(outB.Read())
outB.Close()
lib.fso.DeleteFile(xfile);

This works, but requires write access on the server. Is there a way to do the same thing without writing to a file?

I havn't been able to figure out how to convert the string this.buffer into a array of byte that I can then write using Response.BinaryWrite without writing to a file first.

like image 385
alumb Avatar asked May 17 '26 11:05

alumb


1 Answers

Why not simply use:-

Response.Write(this.buffer)

Assuming the codepage of the response is set correctly (I.e., its the same as in the Locale that the VBScript is running in) then Response.Write should do the same conversion that your StringToMultiByte is doing.

I suspect you've tried this and is hasn't worked. If so I really think you need to look into why that is rather attempt this strange usage of BinaryWrite. Currently your solution is going to kill your server.

like image 146
AnthonyWJones Avatar answered May 19 '26 03:05

AnthonyWJones



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!