Файл Excel при загрузке Amazon S3 Bucket поврежденC#

Место общения программистов C#
Ответить
Anonymous
 Файл Excel при загрузке Amazon S3 Bucket поврежден

Сообщение Anonymous »

Я загрузил файл .xlsx в корзину Amazon S3 . Проблема в том, что когда я пытаюсь получить его, файл повреждается, когда я пытаюсь открыть его с помощью Microsoft Excel. Я использую AWS SDK для .NET.
Логика загрузки файла из корзины:

Код: Выделить всё

public async Task DownloadFile(string s3Key)
{
try
{

var getFile = new GetObjectRequest
{
BucketName = _bucketName,
Key = s3Key
};
var response = await AmazonS3Client.GetObjectAsync(getFile);
return response.ResponseStream;
}
catch (AmazonS3Exception e)
{
Console.WriteLine(e);
return null;
}
}

Затем попадает в мой уровень BUCKET SERVICE

Код: Выделить всё

public async Task DownloadFile(string s3Key)
{
var getFileStream = await _bucketAcces.DownloadFile(s3Key);

return getFileStream;

}
Затем на мой СЛОЙ АДМИНИСТРАТИВНЫХ СЕРВИСОВ:

Код: Выделить всё

 public Task GetExcelFile()
{
return _bucketService.DownloadFile("produseExcelExample.xlsx");
}
Чем в мой контроллер:

Код: Выделить всё

public async Task GetExcelFile()
{
var fileStream = await _adminService.GetExcelFile();
if (fileStream is not null)
{
var fileMemoryStream = new MemoryStream();
await fileStream.CopyToAsync(fileMemoryStream);
fileMemoryStream.Position = 0;
var fileStreamResult = new FileStreamResult(fileMemoryStream,
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
{
FileDownloadName = "Exemplu_excel.xlsx"
};
return fileStreamResult;
}

return NotFound("Error on downloading file");
}
Файл загружается, все в порядке, но когда я пытаюсь его открыть, выдает ошибку:
Изображение

А затем

ОБНОВЛЕНИЕ
Это как я получаю его во внешнем интерфейсе (забыл упомянуть об этом):

Код: Выделить всё

const downloadExcel = async () => {
try {
// Call the admin service to get the file

const response =  await adminService.downloadExcel();

// Convert the response into a Blob (binary large object)
const blob = new Blob([response], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });

// Create a URL for the blob object
const url = window.URL.createObjectURL(blob);

// Create an anchor element and set the href to the blob URL
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'exemplu_fisier.xlsx'); // Set the desired file name

// Programmatically click the anchor to trigger the download
document.body.appendChild(link);
link.click();

// Clean up by removing the anchor and revoking the object URL
link.remove();
window.URL.revokeObjectURL(url);
} catch (error) {
fireAlarm(showErrorFileDwonload);
console.error("Error downloading Excel file:", error);
}
}
Я использую Vue.js 3 для внешнего интерфейса.
Что здесь делать?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -corrupted
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»