Robię Web Api i potrzebuję zwrócić wiele obrazów do klienta. Obecnie używam łańcucha Base64 dla każdego obrazu, ale powoduje to, że każde żądanie trwa zbyt długo. Czy istnieje lepszy, bardziej skuteczny sposób zwracania obrazów?Powracanie obrazów z WebApi
Jest to kod używam:
Kontroler:
public LearningUnits GetLearningUnits([FromODataUri]Guid key)
{
var record = db.LearningUnits.SingleOrDefault(inst => inst.LearningUnitId == key);
record.ImageURLPath = ImageHandler.ImageToByteArrayFromFilePath(record.ImageURLPath);
return record;
}
ImageToByteArray Metoda:
public static string ImageToByteArrayFromFilePath(string imagefilePath)
{
byte[] imageArray = File.ReadAllBytes(imagefilePath);
string baseImage = Convert.ToBase64String(imageArray);
return baseImage;
}
Ile takie obrazy są tam w sumie? –
Dlaczego nie możesz zwrócić adresu URL w swoim modelu, a następnie klient będzie wysuwał kolejne żądania uzyskania plików binarnych obrazów? – tenbits
Zależy od ilości rekordów w bazie danych. Każdy rekord ma obraz. Może to być od 1 do 1000. –