public string PostSignDocuments([FromBody] string base64String, [FromBody] string firstName, [FromBody] string secondName) { string signedFileBase64 = ""; var bytes = Convert.FromBase64String(base64String); using (var fileMemoryStream = new MemoryStream(bytes)) { fileMemoryStream.Seek(0, SeekOrigin.Begin); _signature.SignDocument(fileMemoryStream, firstName, secondName); fileMemoryStream.Seek(0, SeekOrigin.Begin); signedFileBase64 = ConvertStreamToBase64(fileMemoryStream); } return(signedFileBase64); }
public static void CreateSignedArchive(ISignature signatureService, string documentPath, string firstName, string secondName) { //var result = new HttpResponseMessage(HttpStatusCode.OK); using (var archiveMemoryStream = new MemoryStream()) { using (var archive = new ZipArchive(archiveMemoryStream, ZipArchiveMode.Create, true)) { using (FileStream source = File.Open(documentPath, FileMode.Open)) using (var fileMemoryStream = new MemoryStream()) { source.CopyTo(fileMemoryStream); fileMemoryStream.Seek(0, SeekOrigin.Begin); signatureService.SignDocument(fileMemoryStream, firstName, secondName); fileMemoryStream.Seek(0, SeekOrigin.Begin); var archiveFile = archive.CreateEntry(source.Name); using (var entryStream = archiveFile.Open()) { using (var streamWriter = new StreamWriter(entryStream)) { fileMemoryStream.CopyTo(entryStream); } } } } using (var fileStream = new FileStream(@"C:\Users\stasy\Desktop\test.zip", FileMode.Create)) { archiveMemoryStream.Seek(0, SeekOrigin.Begin); archiveMemoryStream.CopyTo(fileStream); } //result.Content = new ByteArrayContent(archiveMemoryStream.ToArray()); //result.Content.Headers.ContentDisposition = // new ContentDispositionHeaderValue("attachment") // { // FileName = "zip.zip" // }; //result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/zip"); } //return result; }
public async Task <string> SignDocuments([FromForm] IFormFileCollection uploads, [FromForm] string firstName, [FromForm] string secondName) { var fileGuid = Guid.NewGuid(); using (var archiveMemoryStream = new MemoryStream()) { using (var archive = new ZipArchive(archiveMemoryStream, ZipArchiveMode.Create, true)) { foreach (var uploadedFile in uploads) { using (var fileMemoryStream = new MemoryStream()) { await uploadedFile.CopyToAsync(fileMemoryStream); fileMemoryStream.Seek(0, SeekOrigin.Begin); _signature.SignDocument(fileMemoryStream, firstName, secondName); fileMemoryStream.Seek(0, SeekOrigin.Begin); var archiveFile = archive.CreateEntry(uploadedFile.FileName); using (var entryStream = archiveFile.Open()) { using (var streamWriter = new StreamWriter(entryStream)) { await fileMemoryStream.CopyToAsync(entryStream); } } } } } archiveMemoryStream.Seek(0, SeekOrigin.Begin); _tempDataService.Add(fileGuid, archiveMemoryStream.ToArray()); } return(fileGuid.ToString()); }