SaveAs | ||
Method | ||
Member of ScriptUtils.ByteArray |
Where | Type | Optional | Default | Description |
---|---|---|---|---|
FileName | String | File to save data. | ||
StartPosition | Variant | yes | 1 | Start file position to save SaveAs contents, based to 1. 0 means 'End of file', Empty or undefined means 'overwrite file'. |
Length | Long | yes | All data | Number of bytes to write to the file. (1B - 2GB-1) |
| ||
<% Set Binary = CreateObject("ScriptUtils.ByteArray") Length = CLng(Request.ServerVariables("HTTP_Content_Length")) Binary.ByteArray = Request.BinaryRead(Length) Binary.SaveAs Server.MapPath(".") & "\data.post" Response.Write "Request data (" & Binary.Length & " bytes): <br><pre>" Response.Write Binary.String Response.Write "</pre>" %> <form method=post> <input value=XXXXXXXXXXX NAME=A> <input type=submit> </form> |
| ||
'Save unicode string as UTF-8 with BOM SaveBOMUTF "f:\222.txt", "ìšèøžýáíé" Sub SaveBOMUTF(FileName, SomeString) '1. save BOM header. SaveBOMHeader FileName Dim ByteArray Set ByteArray = CreateObject("ScriptUtils.ByteArray") 'Convert the string to UTF-8 ByteArray.charset = "utf-8" ByteArray.String = SomeString 'Save the UTF-8 string at position 4 of the file '(after the 3bytes BOM header) ByteArray.SaveAs FileName, 4 End Sub Sub SaveBOMHeader(FileName) 'create byte array object Dim ByteArray Set ByteArray = CreateObject("ScriptUtils.ByteArray") 'the bytearray contains BOM header - 3 bytes. ByteArray.SetSize 3 ByteArray(1) = &HEF ByteArray(2) = &HBB ByteArray(3) = &HBF 'Or you can use ByteArray.HexString = "EFBBBF" in v> 2.14 'Save the BOM header to the FileName ByteArray.SaveAs FileName End Sub |
| ||
You can use Post binary data to URL from WSH/ASP/VBA/VBS and Work with binary files in VBS - read and write local and remote files articles to read and send a binary file from a client-side.
| ||
<% 'This sample demonstrates store of large binary data. 'It accepts up to 2GB of a source data a PUT or POST SaveLargePostData "C:\temp\uploaddata.dat" Sub SaveLargePostData(DestFile) Const BlockSize = 4096 Dim TotalBytes, DataReaded, ReadBlockSize, BinaryData TotalBytes = Request.TotalBytes If TotalBytes > 0 Then Dim ByteArray: Set ByteArray = GetByteArray() For DataReaded = 0 To TotalBytes Step BlockSize If BlockSize + DataReaded > TotalBytes Then 'Last block, IIS6 does not accept to read more data ReadBlockSize = TotalBytes - DataReaded Else ReadBlockSize = BlockSize End If ByteArray.ByteArray = Request.BinaryRead(ReadBlockSize ) 'Save the block of a source data. If DataReaded = 0 Then 'The first block will overwrite existing file (if one) ByteArray.SaveAs DestFile Else 'Position of SaveAs (second parameter) is based to 1 ByteArray.SaveAs DestFile, 1 + DataReaded End If Next ' DataReaded Response.Write "<br>Source data (" & TotalBytes & _ "B) was saved to '" & DestFile & "'" End If ' TotalBytes>0 then End Sub 'Returns ByteArray object. Solves problem with registration and installation Function GetByteArray() On Error Resume Next Dim Binary Set Binary = CreateObject("ScriptUtils.ByteArray") 'Creates ByteArray object 'response.write hex(Err) If Err = &h46 Then On Error Goto 0 Err.Raise 5, "ScriptUtils.ByteArray", "Insufficient permissions to the scptult.ocx file. User: '" & GetUserName & "' must have read permission to the file." ElseIf Err = &h1ad Then On Error Goto 0 Err.Raise 6, "ScriptUtils.ByteArray", "Script Utilities is not correctly installed. Please, install Script Utilities on this server or copy and register scptutl.ocx file on this server." ElseIf Err = &h8007045A Then On Error Goto 0 Err.Raise 6, "ScriptUtils.ByteArray", "The evaluation version of Script Utilities was expired. Please install full version." ElseIf Err = &h8007007E Then On Error Goto 0 Err.Raise 6, "ScriptUtils.ByteArray", "The ScriptUtilities library (scptutl.ocx) is missing. Please copy the library or reinstall the software." ElseIf Err <> 0 Then Dim E, N N = Hex(Err) E = Err.Description On Error Goto 0 Err.Raise 6, "ScriptUtils.ByteArray", "Cannot create ScriptUtils.ByteArray object, Error: '" & N & " " & E & "'" End If Set GetByteArray = Binary End Function %> |