Передача файлов с клиента на сервер

Есть задача, сохранить файл с клиента на сервере.

Код HTML

<asp:Button ID="SelectionFile" runat="server" Text="Выбрать файл"/>

Код JS

<script>
        let SelectionFile = document.getElementById("SelectionFile");
        SelectionFile.addEventListener("click", function (event) {
            event.preventDefault();
            const fileInput = document.createElement("input");

            fileInput.type = 'file';
            fileInput.click();
            fileInput.addEventListener("change", function (event) {
                event.preventDefault();
                const selectedFile = event.target.files[0];
                if (selectedFile) {

                    const formData = new FormData();
                    formData.append("file", selectedFile);

                    $.ajax({
                        type: "POST",
                        url: "../WebForm1.aspx/AddFileServer",
                        processData: false,
                        contentType: false,
                        data: formData,
                    });
                }
            });
        });
    </script>

и метод на странице WebForm.aspx

[WebMethod]
        public void AddFileServer(HttpContext context)
        {
            HttpPostedFile file = context.Request.Files[0];

            string fileName = Path.GetFileName(file.FileName);

            string directoryPath = Server.MapPath("~/Upload/");

            string filePath = Path.Combine(directoryPath, fileName);

            file.SaveAs(filePath);
        }

Суть проблемы : при нажатии кнопки SelectionFile выбираем файл. После чего в скрипте JS в переменую selectedFile сохраняем файл. Через Ajax запрос отправляем на сервер, где в методе сохраняем его на сервере в папке Upload. Но файла в этой папке нету. Что у меня есть:

  1. Ошибок браузера нету, пишет ответ 200 и все окей.
  2. Ошибок в коде нету, тоесть проверил путь к папке что она есть и так дале.

Что я делаю не так ? может в переменной selectedFile не файл ? И я передаю вобще не файл на сервер. Вобщем я не могу понять в чем проблема.

Можете подсказать и помочь в чем проблема ?

Да я знаю что есть fileupload но я хочу именно таким методом сделать.

Добавлю проект ASP .NET WebForm


Ответы (0 шт):