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

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

Сообщение Anonymous »

У меня есть одно сомнение относительно загрузки файлов.
В настоящее время я использую .net и ServiceStack Framework для разработки серверной части. Итак, мой Frotend находится на Angular и размещен на сервере IIS. Service Stack Framework предоставляет функцию, с помощью которой вы можете получить доступ к загруженному файлу из 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;

after that
remanig code for condtion and path creating

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

   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 ... -uploading
Ответить

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

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

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

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

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