Thus wrote
,
> I have to "PUT" data to a Unicode file... a file that has the "FF FE"
> mark at the beginning of the file.
>
> How do i do that. What HTTP header do i need to send so that the data
> is stored in the Unicode file. Right now when i "PUT" the data it
> sores
>
> it in a regular file.
>
> Test code below
>
> Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
>
> ' Opens the connection to the remote server.
> xml.Open "PUT", "http://135.8.63.61/outlook/save.txt", False
> ' Try these headers
> 'xml.setRequestHeader "Charset", "UTF-16"
> 'xml.setRequestHeader "Charset", "text/html; charset=UTF-16"
> ' Actually Sends the request and returns the data: xml.Send "hello"
>
> If xml.Status >= 400 And xml.Status <= 599 Then
> Response.Write "Error Occurred : " & xml.Status & " - " &
> xml.statusText
> Else
> Response.Write xml.ResponseText
> End If
> Set xml = nothing
If you ask this question in a .NET newsgroup one has to wonder why you don't
use .NET? Here's a simple implementation:
public static void DoPut(Uri uri, string fileName, Encoding encoding) {
WebClient client = new WebClient();
using(Stream istream = new FileStream(fileName, FileMode.Open))
using(Stream ostream = client.OpenWrite(uri, "PUT")) {
byte[] buffer = new byte[4096];
int bytes;
while((bytes = istream.Read(buffer, 0, buffer.Length)) > 0) {
ostream.Write(buffer, 0, bytes);
}
}
}
To PUT a Unicode (UTF-16LE) file, call
DoPut(new Uri("http://host/path/to/file.txt"), @"X:\Path\To\File.txt", Encoding.Unicode);
Cheers,
--
Joerg Jooss
news-