alpacaheng Ответов: 2

Как загрузить файл на сервер с помощью ajax jquery ASP.NET


я хочу загрузить файл, выбранный с помощью использования ajax jquery на стороне клиента(homepage.html) и загрузить его на серверную сторону (process.aspx.cs). может ли кто-нибудь предоставить мне образец кода?

Что я уже пробовал:

Код на стороне клиента (homepage.html)
var file = $('#file')[0].files[0];
            $.ajax({
                type: "POST",
                url: "process.aspx/getFile",
                contentType: "application/json; charset=utf-8",
                data: "{'file': '" + Json.stringify(file) + "'}",
                dataType: "json",
                success: function (response) {
                    console.log(response.d);
                },
                failure: function (response) {
                    alert(response.d);
                }
            });


Код на стороне сервера (процесс.aspx-файл.в CS)
public static void getFile(string file) {
            
        }

Sinisa Hajnal

Ты гуглил его? Я ожидал, что вы найдете много результатов. Вы должны строчить весь объект данных, а не только имя файла.

F-ES Sitecore

Это подробно документировано, пожалуйста, сделайте фундаментальное исследование, прежде чем задавать вопрос, вы можете легко найти код для этого, если вы google.

Что касается поиска пути к файлу на сервере, используйте сервер.MapPath преобразует путь "~/MyUploadFiles/mypic.jpg" физический путь типа "\c:\inetnetpub\wwwroot..."

2 Ответов

Рейтинг:
2

PRAKASH9

попробуйте использовать этот код

if (Request.Files.Count > 0)
{
    HttpFileCollection files = Request.Files;
    for (int i = 0; i < files.Count; i++)
    {
        HttpPostedFile postedFile = files[i];
        string savepath = "";
        string filename = Guid.NewGuid().ToString();
        postedFile.SaveAs(savepath + @"\" + filename);
    }
}


Рейтинг:
1

Afzaal Ahmad Zeeshan

Некоторые незначительные проблемы в коде включают в себя именование помощника JSON, см. здесь, В формате JSON.преобразовать в строки() - JavaScript-кода | МДН[^] — обратите внимание на капитализацию формат JSON Еще одна вещь, которая меня интригует, это то, почему вы нанизываете изображение? Вы намеревались перейти на base64? Как преобразовать изображение в строку base64 с помощью javascript - Stack Overflow[^].

Поскольку вы хотели сделать это с помощью JavaScript (Ajax), есть гораздо более простой и легкий способ справиться с этим... Где вы можете отправлять файлы напрямую, не связываясь с базой 64. Вам нужно проверить что именно enctype имеет ли ваша форма в настоящее время значение; это должно быть multipart/form-data Это единственная сложная часть во всей этой области. Как только это будет сделано, вы даже можете захватить файл с помощью, Request.Files коллекция.

Я написал полную статью с образцом кода, который вы можете использовать для этого, пожалуйста, смотрите: Загрузка файлов – HTML5 и jQuery Way![^]


alpacaheng

Здравствуйте, сэр, я просмотрел вашу статью, и у меня есть несколько вопросов.
Если не использовать asp.net razor, но при использовании обычной веб-формы объект HttpRequest использовать нельзя.
Код на стороне сервера (process.aspx.cs) выглядит следующим образом:
[System.Web.Services.Атрибутом webmethod]
общественная статический недействительным файл сохранения()
{
int i = Request.File.Рассчитывать;
}

другой вопрос, как я могу получить путь к файлу на сервере, если я загрузил его в папку раньше?