Пытался загрузить mp3-файл в браузере через созданный мной API. Но вместо получения mp3 файла. Я продолжаю получать ответ в формате JSON. Я ссылался на ответ в return-file-in-asp-net- core-web-api, но все равно не могу скачать mp3 файл. Есть ли какая-то ошибка, которую я упустил из виду, пожалуйста, помогите?
Это мой метод загрузки из пользовательского интерфейса
void DownloadRecording(RecordingHistory voicehistory)
{
try
{
using (var client = new WebClient())
{
client.DownloadFile("https://2d489fd863a2.ngrok.io/api/download/" + voicehistory.RecordingId + ".mp3", voicehistory.RecordingId + ".mp3");
}
}
catch { }
}
Это моя функция API для загрузки mp3 с сервера.
[HttpGet("download/{recordingFile}")]
public async Task<IActionResult> DownloadVoiceRecording(string recordingFile)
{
string filePath = Directory.GetCurrentDirectory() + @"\audio\Processed\" + recordingFile;
var memory = new MemoryStream();
using (var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
{
await stream.CopyToAsync(memory);
}
memory.Position = 0;
var types = GetMimeTypes();
var ext = Path.GetExtension(filePath).ToLowerInvariant();
return File(filePath, types[ext], recordingFile);
}
private Dictionary<string, string> GetMimeTypes()
{
return new Dictionary<string, string>
{
{".mp3", "audio/mpeg"},
{".wav","audio/wav" }
};
}
Это ответ, который я получаю от браузера и почтальона
{
"Version": "2.0.0.0",
"StatusCode": 200,
"Message": "Status 200 OK",
"Result":"��@� ... ... /// A lot of random symbol here
}