Добавлен element.files в FormData, но в MVC Controller отображается null - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь реализовать на своем сайте функцию загрузки файлов, которая сохраняет файл на моем SQL сервере. Я создаю FormData и добавляю к нему различные ключи, и все они отображаются в контроллере, за исключением файла, который я добавил к нему, который отображается как null.

The javascript:

                                var files = document.getElementById("docUploader").files;

                                for (var i = 0; i < totalFiles; i++) {
                                    addFilesData.append("FilesContent", files[i]);
                                }

                                addFilesData.append("Action", "i");
                                addFilesData.append("ID", 0);
                                addFilesData.append("EventID", model.eventID);

                                var myURL = ("exampleURL");

                                $.ajax({
                                    url: myURL,
                                    type: "POST",
                                    data: addFilesData,
                                    async: false,
                                    processData: false,
                                    contentType: false,
                                    success: function (response) {}
                                });

Контроллер:

        public IEnumerable<object[]> Post()
        {
            var httpRequest = HttpContext.Current.Request;
            List<object[]> reader = new List<object[]>();
            string connectionString = WebConfigurationManager.ConnectionStrings["ExampleString"].ConnectionString.ToString();
            using (var conn = new SqlConnection(connectionString))
            {
                using (var command = new SqlCommand("setAdditionalFiles", conn))
                {
                    command.CommandType = CommandType.StoredProcedure;
                    var testFilesContent = httpRequest.Params["FilesContent"];
                    var testID = httpRequest.Params["ID"];
                    var testEvent = httpRequest.Params["EventID"];
                    var testAction = httpRequest.Params["Action"];

                //.....so on so forth
                }
            }
        }

Я убедился, что на самом деле есть файл, добавленный к formData перед вызовом ajax, и в самом контроллере он видит все остальные пары ключей, которые я предоставил. Это просто FilesContent с нулевым значением.

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