public async Task <ActionResult <IEnumerable <byte[]> > > Get() { using (var cxt = new OrgFilesContext()) { return(await cxt.OrgFiles .Select(f => f.FileData) .ToArrayAsync()); } }
public async Task <IActionResult> Post([FromForm] List <IFormFile> files) { // Investigate just taking a single IFormFile as argument instead if (files.Count > 1 || files.Count == 0) { return(BadRequest()); } var inputFile = files[0]; Console.WriteLine(inputFile.ContentType); if (inputFile.Length == 0) { return(BadRequest()); } string tmpInputPath = Path.GetTempFileName(); string tmpOutputPath = Path.GetTempFileName(); using (FileStream tmpInputFile = System.IO.File.Create(tmpInputPath)) //using (var htmlMs = new MemoryStream()) { await inputFile.CopyToAsync(tmpInputFile); } string panCmd = $"pandoc -s -f org -t html -o {tmpOutputPath} {tmpInputPath}"; await panCmd.RunCommand(); byte[] htmlFileBytes; // convert to in-memory bytes using (FileStream tmpOutputFile = System.IO.File.Open(tmpOutputPath, FileMode.Open)) using (var ms = new MemoryStream()) { await tmpOutputFile.CopyToAsync(ms); htmlFileBytes = ms.ToArray(); } using (var context = new OrgFilesContext()) { var uploadFile = new OrgFile { FileData = htmlFileBytes }; context.OrgFiles.Add(uploadFile); await context.SaveChangesAsync(); return(Ok(uploadFile.Id)); } }