BlazorInputfile'dan veri nasıl alınır
Oct 28 2020
i kullanmak BlazorInputFile içinde döngü bir ziparchive i girdi dosyası (sıkıştırılmış bir dosya) aldığım o akışı nasıl dönüştürüleceği do not biliyorum .... Projemde ama üzerinde
Akışın iyi olduğunu görüyorum, ancak bir memorystream'e copytoasync yapmaya çalıştığımda, değişkenin kullanılamadığını söyleyerek çalışmıyor.
Bu yüzden, void işlevim loadFile yerine eşzamansız bir görevle copytoasync için bir bekleme ile deniyorum ve şimdi mevcut ms'yi gördüm, ancak boş, boyutu 0 ... copytoasync'de hiçbir şey olmadı gibi görünüyor ...
private async Task loadFileAsync(IFileListEntry fileZip, ExcelWorksheet sheet2User)
{
MemoryStream mstest = new MemoryStream();
await fileZip.Data.CopyToAsync(mstest);
mstest.Position = 0;
using (ZipArchive archive = new ZipArchive(mstest, ZipArchiveMode.Update))
{
foreach (ZipArchiveEntry entry in archive.Entries)
{
//my code...
}
}
}
Yanıtlar
mohammadmahdiTalachi Nov 04 2020 at 20:48
Ben de bu problemi yaşadım. Dosya baytları alabilir ve bunu Api'nize gönderebilir, ardından orada yeniden dosya oluşturabilirsiniz.
senin bileşeninde
public byte[] FileContent { get; set; }
protected async Task HandleAnswerFileSelected(IFileListEntry[] files)
{
foreach (var file in files)
{
FileContent = await FIleSender(file),
}
}
public async Task<byte[]> FIleSender(IFileListEntry file)
{
using (var ms = new MemoryStream())
{
await file.Data.CopyToAsync(ms);
return ms.ToArray();
}
}
API'nizde
//file.content is aray of byte
using var memoryStream = new MemoryStream(file.Content);
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'