Moons
Moons

Reputation: 3854

Read the entire file into a byte array in WINFORMS

I want to read the content of the file opened using file dialog box and then save it in a byte array to pass it to a web service

        Stream myStream;
        OpenFileDialog saveFileDialog1 = new OpenFileDialog();

        saveFileDialog1.Filter = "zip files (*.zip)|*.zip|All files (*.*)|*.*";
        saveFileDialog1.FilterIndex = 2;
        saveFileDialog1.RestoreDirectory = true;

        if (saveFileDialog1.ShowDialog() == DialogResult.OK)
        {
            if ((myStream = saveFileDialog1.OpenFile()) != null)
            {

                NSITESERVICE.UploadSoapClient obj = new NSITESERVICE.UploadSoapClient();

                byte[] filebytes =  //what should i pass it over here...

                obj.UploadFile("kamal", "p@ssword", filebytes);

                // Code to write the stream goes here.
                myStream.Close();
            }
        }

I dont know where i am wrong

Any help is appreciated. Thnaks

Upvotes: 0

Views: 4122

Answers (2)

jlew
jlew

Reputation: 10591

You're not actually reading the bytes out of the myStream.

byte[] fileBytes = new byte[myStream.Length];
myStream.Read(fileBytes,0,mystream.Length);

obj.UploadFile(...)

Upvotes: 3

Giorgi
Giorgi

Reputation: 30873

You are not assigning anything to filebytes variable so you are essentially passing null to the service. Use File.ReadAllBytes method to read all the bytes and pass it to the webservice.

Upvotes: 4

Related Questions