Вот мой код:Как преобразовать файл в массив байтов непосредственно без пути (без сохранения файла)
public async Task<IActionResult> Index(ICollection<IFormFile> files)
{
foreach (var file in files)
uploaddb(file);
var uploads = Path.Combine(_environment.WebRootPath, "uploads");
foreach (var file in files)
{
if (file.Length > 0)
{
var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
await file.SaveAsAsync(Path.Combine(uploads, fileName));
}
Теперь я Преобразование этого файла в массив байтов, используя этот код:
var filepath = Path.Combine(_environment.WebRootPath, "uploads/Book1.xlsx");
byte[] fileBytes = System.IO.File.ReadAllBytes(filepath);
string s = Convert.ToBase64String(fileBytes);
И затем я загружаю этот код в мою базу данных nosql. Это все работает нормально, но проблема в том, что я не хочу сохранять файл. Вместо этого я хочу напрямую загрузить файл в мою базу данных. И это может быть возможно, если я могу просто преобразовать файл в массив байтов напрямую, не сохраняя его.
public async Task<IActionResult> Index(ICollection<IFormFile> files)
{
foreach (var file in files)
uploaddb(file);
var uploads = Path.Combine(_environment.WebRootPath, "uploads");
foreach (var file in files)
{
if (file.Length > 0)
{
var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
///Code to Convert the file into byte array
}
Гм ... так, что именно проблема? – Kevin
* file.OpenReadStream() * искать документацию IFormFile.OpenReadStream – Gusman
Когда вы изначально сохранили файл, в какой форме он был? Однако у вас было это в памяти, он должен был уже быть байтовым массивом или преобразован в массив байтов. Нам нужно будет увидеть, как вы получаете файл в первую очередь, и как вы его сохраняете. – Kevin