ASP.Net Core Upload Multiple Files , Zip and Save as a byte array in database
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Threading.Tasks; | |
using Microsoft.AspNetCore.Http; | |
using System.IO; | |
using System.IO.Compression; | |
namespace MyNameSpace | |
{ | |
public static class FileUpload | |
{ | |
public static byte[] ToZip(List<IFormFile> files) | |
{ | |
long size = files.Sum(f => f.Length); | |
// full path to file in temp location: var filePath = Path.GetTempFileName(); | |
var tempPath = Path.GetTempPath(); | |
var filePath = tempPath + "/submission/"; | |
var archiveFile = tempPath + "/zip/archive.zip"; | |
var archivePath = tempPath + "/zip/"; | |
if (Directory.Exists(filePath)) | |
{ | |
Directory.Delete(filePath, true); | |
} | |
if (Directory.Exists(archivePath)) | |
{ | |
Directory.Delete(archivePath, true); | |
} | |
Directory.CreateDirectory(filePath); | |
Directory.CreateDirectory(archivePath); | |
foreach (var formFile in files) | |
{ | |
var fileName = filePath + formFile.FileName; | |
if (formFile.Length > 0) | |
{ | |
using (var stream = new FileStream(fileName, FileMode.Create)) | |
{ | |
formFile.CopyToAsync(stream); | |
} | |
} | |
} | |
ZipFile.CreateFromDirectory(filePath, archiveFile); | |
/* beapen: 2017/07/24 | |
* | |
* Currently A Filestream cannot be directly converted to a byte array. | |
* Hence it is copied to a memory stream before serializing it. | |
* This may change in the future and may require refactoring. | |
* | |
*/ | |
var stream2 = new FileStream(archiveFile, FileMode.Open); | |
var memoryStream = new MemoryStream(); | |
stream2.CopyTo(memoryStream); | |
using (memoryStream) | |
{ | |
return memoryStream.ToArray(); | |
} | |
} | |
} | |
} |
This comment has been minimized.
This comment has been minimized.
I'm using Asp.net core 2.0 |
This comment has been minimized.
This comment has been minimized.
how do I use it in my scenario namespace SPA_App.Controllers
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
Please tell me how do i use this code in my project
im newbee