235 messaggi dal 27 aprile 2009
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 :)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.