Arsene
Arsene

Reputation: 1067

ASP.NET Web API 2 file upload

I would like to know how best to handle file upload and addtional information added to the file to be uploaded using ASP.NET Web API 2 without MVC components. I have google the net and I can tell you I am more confused than I expected.

The Additional info will be stored in db and the file on the disk. So far the Web API app I am building does not support multipart/form-data. It only supports the default media types. I know I need to create a media formatter.

Pls help.

Upvotes: 14

Views: 12728

Answers (2)

Alex Lyalka
Alex Lyalka

Reputation: 1651

You can just serialize your file data into BASE64 and send them as a string in case of multipart/from-data is not allowed for some reason.

Upvotes: 0

King Jk
King Jk

Reputation: 1089

I had wrote Javascript split File and upload to WEB API . i think you can reference my backend codes

In front-end you need using below code to upload your File

  var xhr = new self.XMLHttpRequest();
  xhr.open('POST', url, false);
  xhr.setRequestHeader('Content-Type', 'application/octet-stream');
  xhr.send(chunk);

In backend use Request.InputStream.Read to catch your file bytes

    [HttpPost]
    [ValidateInput(false)]
    public string fileUpload(string filename)
    {
        byte[] file = new byte[Request.InputStream.Length];
        Request.InputStream.Read(file, 0, Convert.ToInt32(Request.InputStream.Length));
        BinaryWriter binWriter = new BinaryWriter(new MemoryStream());
        binWriter.Write(file);
        StreamReader reader = new StreamReader(binWriter.BaseStream);
        reader.BaseStream.Position = 0;
        //This example is recevied text file
        while ((line = reader.ReadLine()) != null)
        {

         };
    }

Upvotes: 1

Related Questions