Ciao a tutti vorrei inviare un file word in HTTP post, e codificarlo in base64.
Dall'altra parte lo vorrei decodificarlo e salvarlo.
Parte di codice per inviarlo è questo:
static void PostTest()
{
try
{
HttpWebRequest httpRequest = null;
HttpWebResponse httpResponse = null;
string postData = "value=" + Encode();
byte[] data = System.Text.Encoding.UTF8.GetBytes(postData);
httpRequest = (HttpWebRequest)WebRequest.Create("http://localhost:8080/TeamTask/");
httpRequest.Method = "POST";
httpRequest.ContentType = "application/x-www-form-urlencoded";
httpRequest.ContentLength = data.Length;
Stream newStream = httpRequest.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();
Console.WriteLine(httpRequest.Address);
httpResponse = (HttpWebResponse)httpRequest.GetResponse();
if (httpResponse != null)
httpResponse.Close();
StreamReader sr = new StreamReader(newStream);
Console.WriteLine(sr.ReadToEnd());
sr.Close();
newStream.Close();
}
catch (System.Net.WebException ex)
{
Console.WriteLine(HttpStatusCode.BadRequest.ToString());
Console.WriteLine(ex.Message);
}
}
static string Encode()
{
string file = @"C:\Users\Giorgio\Documents\Visual Studio 2010\Projects\TeamTask\procedure.docx";
string encodedData = "";
if (!string.IsNullOrEmpty(file))
{
FileStream fs = new FileStream(file,
FileMode.Open,
FileAccess.Read);
byte[] filebytes = new byte[fs.Length];
fs.Read(filebytes, 0, Convert.ToInt32(fs.Length));
encodedData = Convert.ToBase64String(filebytes, Base64FormattingOptions.InsertLineBreaks);
}
return (encodedData);
}
la parte di decodifica è la seguente
public String Post()
{
string value = HttpContext.Current.Request["value"];
Decode(value);
return value;
}
public void Decode(string value)
{
string file = @"C:\Users\Giorgio\Documents\Visual Studio 2010\Projects\TeamTask\temp2.docx";
if (!string.IsNullOrEmpty(file))
{
byte[] filebytes = Convert.FromBase64String(value);
FileStream fs = new FileStream(file, FileMode.CreateNew, FileAccess.Write, FileShare.None);
fs.Write(filebytes, 0, filebytes.Length);
fs.Close();
}
}
Quando lo salvo e provo ad aprilo mi dice file danneggiato.
Chi mi può aiutare? grazie a tutti :)