Передача файлов с клиента на сервер
Есть задача, сохранить файл с клиента на сервере.
Код 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. Но файла в этой папке нету.
Что у меня есть:
- Ошибок браузера нету, пишет ответ 200 и все окей.
- Ошибок в коде нету, тоесть проверил путь к папке что она есть и так дале.
Что я делаю не так ? может в переменной selectedFile не файл ? И я передаю вобще не файл на сервер. Вобщем я не могу понять в чем проблема.
Можете подсказать и помочь в чем проблема ?
Да я знаю что есть fileupload но я хочу именно таким методом сделать.
Добавлю проект ASP .NET WebForm