Ecco il mio codice:Come convertire un file in array di byte direttamente senza il suo percorso (senza file di salvataggio)
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));
}
Ora sto conversione di questo file in array di byte utilizzando questo codice:
var filepath = Path.Combine(_environment.WebRootPath, "uploads/Book1.xlsx");
byte[] fileBytes = System.IO.File.ReadAllBytes(filepath);
string s = Convert.ToBase64String(fileBytes);
E poi sto caricando questo codice nel mio database nosql. Funziona tutto bene, ma il problema è che non voglio salvare il file. Invece di quello voglio caricare direttamente il file nel mio database. E può essere possibile se riesco a convertire il file in array di byte direttamente senza salvarlo.
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
}
Um ... Che cosa è esattamente il problema? – Kevin
* file.OpenReadStream() * cerca la documentazione di IFormFile.OpenReadStream – Gusman
Quando hai salvato il file originariamente, in quale forma era? Comunque lo avevi in memoria, avrebbe dovuto essere già un array di byte o convertibile in un array di byte. Dovremmo vedere come stai ottenendo il file in primo luogo e come lo stai salvando. – Kevin