How do I upload a file stream to the web API 2 in ASP.NET via JSON object?


  • I have a scenario in which i want to upload the file stream from client side (I am using AngularJS) to the Web Api in asp .net via JSON object. So there will be some fields in JSON object in which one field is file stream.How do i create a JSON object and send it to the web api which get model bind at api side to my model.

    $scope.fileUploadData = {
            TextId: 304765,
            DocumentId: 0,
            PatientId: 166158,
            file://This is my file stream property in JSON
    public ApiActionResult CreateDocument(DocumentVM model)
      //Some logic here.....
    // DocumentVM class will be as follows
    public class DocumentVM
            long TextId;
            long DocumentId;
            long PatientId;
            Stream file;

    Please provide me the sample code snippets how to achieve it.
    What I have tried: I googled lots but i found the solutions like using multipart form data. In which JSON and file stream appended and then send it to the web api. I used following logic to extract the multi part form data.

    public async Task<ApiActionResult> CreateDocument()
      MultipartFormDataStreamProvider provider = 
                new MultipartFormDataStreamProvider(Path.GetTempPath());
                var result = await Request.Content.ReadAsMultipartAsync(provider);
                var model= result.FormData["Metadata"];
                var fileData = result.FileData;//How it will retriev the file data

    • Moved by litdev Sunday, July 24, 2016 11:37 AM
    Monday, July 11, 2016 11:55 AM


All replies