Solution to upload image file via WCF service?

234 views Asked by At

Being surfing for last 3-4 days downloading, running and fixing issues with available demo projects online, none of them work so far.

I need to upload an image using WCF webservice. Where from client side end I like to upload it by means of form (multipart/form-data), including some file description.

Any solution working with proper answer? My mind is really stacked overflow trying different solution. One which I initially have I am able to upload a text file where file gets created with some extra content in it. I need to upload image file.

------------cH2ae0GI3KM7GI3Ij5ae0ei4Ij5Ij5
Content-Disposition: form-data; name=\"Filename\"

testing file gets upload...

When I upload image file, the image file is empty.

Initial Code (one implantation), method by means of which I get the .txt file as above, in case of image its blank (or say corrupt don't know)

    private string uplaodFile(Stream stream)
    {
        StreamReader sr = new StreamReader(stream);
        int length = sr.ReadToEnd().Length;
        byte[] buffer = new byte[length];
        stream.Read(buffer, 0, length);
        FileStream f = new FileStream(Path.Combine(HostingEnvironment.MapPath("~/Upload"), "test.png"), FileMode.OpenOrCreate);
        f.Write(buffer, 0, buffer.Length);
        f.Close();
        stream.Close();
        return "Recieved the image on server";
    }

another;

public Stream FileUpload(string fileName, Stream stream)
        {
            string FilePath = Path.Combine(HostingEnvironment.MapPath("~/Upload"), fileName);
            int length = 0;
            using (FileStream writer = new FileStream(FilePath, FileMode.Create))
            {
                int readCount;
                var buffer = new byte[8192];
                while ((readCount = stream.Read(buffer, 0, buffer.Length)) != 0)
                {
                    writer.Write(buffer, 0, readCount);
                    length += readCount;
                }
            }

            return returnJson(new { resp_code = 302, resp_message = "occurred." });
        }
0

There are 0 answers