Кнопка загрузки C # проверяет наличие MD5-хеша перед загрузкой файла. - PullRequest
0 голосов
/ 19 октября 2019

У меня есть блок кода, который будет загружать файл в Google Drive. Моя главная проблема заключается в том, что когда пользователь нажимает кнопку загрузки, хэш MD5 файла проверяется и сравнивается с хешами MD5 других файлов на Google Диске, и, если есть дубликат, появляется всплывающее сообщение. Должен появиться сообщение о том, что файл является дублированным файлом, и пользователю потребуется повторно загрузить файл снова.

Это из моего файла GetGoogleDrive.cshtml.

@using (Html.BeginForm("UploadFile", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
    <p>
        <label for="file">Upload file:</label>
        <input type="file" name="file" id="file" />
        <input type="submit" value="Upload" id="fileUpload" />
        <script>
            $('#fileUpload').click(function (e) {
                if ($('#file').val() === "") {
                    Swal.fire({
                        title: 'Nothing',
                        text: 'No file selected',
                        type: 'error',
                        confirmButtonText: 'Again!!',
                        timer: 4000

                    })
                }
                else {
                    Swal.fire({
                        title: 'Wait awhile...',
                        text: 'File will be uploaded shortly',
                        type: 'success',
                        confirmButtonText: 'Okay, cool',
                        timer: 4000
                    })
                }

            });
        </script>

Следующий код предназначен для моего класса контроллера файлов загрузки.

[HttpPost]
public ActionResult UploadFile(HttpPostedFileBase file)
    {
        GoogleDriveFilesRepository.FileUpload(file);
        return RedirectToAction("GetGoogleDriveFiles");
    }

Это код для моего класса модели файлов Google Диска.

public static void FileUpload(HttpPostedFileBase file)
    {
        if (file != null && file.ContentLength > 0)
        {
            DriveService service = GetService();

            string path = Path.Combine(HttpContext.Current.Server.MapPath("~/GoogleDriveFiles"),
            Path.GetFileName(file.FileName));
            file.SaveAs(path);

            HashGenerator(path);
            compareHash(HashGenerator(path));

            var FileMetaData = new Google.Apis.Drive.v3.Data.File();
            FileMetaData.Name = Path.GetFileName(file.FileName);
            FileMetaData.MimeType = MimeMapping.GetMimeMapping(path);

              FilesResource.CreateMediaUpload request; 

              using (var stream = new System.IO.FileStream(path, System.IO.FileMode.Open))
            { 
                request = service.Files.Create(FileMetaData, stream, FileMetaData.MimeType);
                request.Fields = "id";
                request.Upload();
            }

        }

    }

Где я должен создать хеш-значение MD5 для файла? В C # или JS?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...