Avatar billede Greenland Nybegynder
11. marts 2009 - 01:43 Der er 2 kommentarer

Sende filestream til server vha webservice

Hej, Er der nogen der kan hjælpe mig med noget kode til at oploade en txt fil fra local hd til web vha. en webservice.
Har rendt mig i at man kan ikke overføre komplekse datatyper uden vha soap, og det har jeg pt ikke lige styr på.

Så jeg søger en enkel løsning at oploade en fil til min webserver vha. en webservice. Nogen forslag/eksempler ?

mvh
Greenland

Ved ikke om nedenstående løsning er optimal men den virker. Ville dog ønske at jeg blot kunne sende fx en filestream som parameter til webmetoden.


Jeg har lavet følgende webmethod:


        [WebMethod]
        public string UploadFil(byte[] data, string path)
        { 
            string res = "";
            string data = "";
            string savefileName = "myfile.TXT";
            try
            {
                savefileName = Server.MapPath("~/" + path + savefileName);

            }
            catch (Exception ex)
            {
                res = ex.Message;
            }

         
            StreamWriter sw = null;

            try
            {
                sw = new StreamWriter(new FileStream(savefileName, FileMode.CreateNew), System.Text.Encoding.Unicode);
            }
            catch (Exception ex)
            {
                res = ex.Message;
                sw = null;
            }

            try
            {

                foreach (Byte b in data
                {
                    sw.WriteLine(b.ToString());
                }

          }
            catch (Exception ex)
            {
                res = ex.Message;
                sw = null;
            }
       

sw.Close();

... som jeg så kalder fra en knap i en webpage:

Byte[] bytes;
        String chars = "ASCII Encoding Example";
       
        int byteCount = System.Text.Encoding.ASCII.GetByteCount(chars.ToCharArray(),6,8);
        bytes = new Byte[byteCount];
   
       
        System.Net.NetworkCredential cre = new System.Net.NetworkCredential("minweb.dk", "min kode");
        f.Service1 ws = new f.Service1();
        ws.Credentials = cre;
        ws.UploadPacketCompressed(bytes, "et bibliotek på webserveren");
Avatar billede arne_v Ekspert
11. marts 2009 - 02:14 #1
Man kan godt overføre komplekse data typer via web service kald, men man kan ikke overfør en reference til en åben fil.
Avatar billede arne_v Ekspert
11. marts 2009 - 02:15 #2
Jeg tvivler iøvrigt på at din web service overfører data korrekt.

For et byte array skal su bare bruge din FileStream og Write metoden.

StreamWriter WriteLine er for at skrive linier af tekst.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester