Загрузка файловC#

Место общения программистов C#
Ответить
Anonymous
 Загрузка файлов

Сообщение Anonymous »

У меня вопрос по поводу загрузки файлов.
В настоящее время я использую .NET и платформу ServiceStack для разработки своей серверной части. Мой друг использует Angular и размещен на сервере IIS. Платформа Service Stack предоставляет функцию, с помощью которой вы можете получить доступ к загруженному файлу из Request!.Files.
Предположим, пользователь загружает файл размером около 30 ГБ и получает к нему доступ из Request!, тогда мой порядок действий следующий:
доступ к файлу -> сканирование файла на наличие антивируса -> одновременное чтение файла, сохранение в этом месте и вычисление хэша md5 для подтверждения того, что файл тот же ->, если не тот же самый, то очистить все сохраненные файлы.

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

for (int i = 0; i < Request!.Files.Length; i++)
{
var uploadedFile = Request.Files[i];
var metadata = request.Documents![i];

try
{
_logger.LogDebug("Processing file {Index}/{Total}: {FileName}", i + 1, Request.Files.Length, uploadedFile.FileName);

var inputStream = uploadedFile.InputStream;
var scanResult = await _antivirusScanner.ScanAsync(inputStream, uploadedFile.FileName);

switch (scanResult.Status)  .....

inputStream.Position = 0;
}
}
Остальный код после этого предназначен для создания условий и путей

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

using var md5 = MD5.Create();
await using (var outputStream = File.Create(destination))
await using (var cryptoStream = new CryptoStream(
outputStream, md5,
CryptoStreamMode.Write))
{
await inputStream.CopyToAsync(cryptoStream);
await cryptoStream.FlushAsync();
}

var computedHash = Convert.ToHexString(md5.Hash!);

if (!string.Equals(computedHash, metadata.DocMd5, StringComparison.OrdinalIgnoreCase))
{
// ....
}
Мой вопрос: у меня есть некоторые проблемы с проверяющим AI, если поток не доступен для поиска, тогда вы можете получить исключение или произойти ошибка конфигурации. Может ли кто-нибудь предложить лучший подход для этого? Пожалуйста, дайте мне знать - любое предложение будет полезно для меня.

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

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

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

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

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

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