Nashii Angella Ответов: 1

Загрузка файла: как вызвать функцию без использования кнопки? С#


Есть ли способ вызвать функцию непосредственно после выбора файла в элементе управления FileUpload? Можем ли мы сделать это, не нажимая на кнопку?

Функция, которую я хочу вызвать сразу после выбора файла, называется FileSelected(). После этого функция FileSelected() вызывает другую функцию CheckFileType().

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

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

private void FileSelected()
{
    if (FileUpload1.HasFile)
    {
        if (CheckFileType(FileUpload1.FileName))
        {
            String filePath = "Cert/" + FileUpload1.FileName;
            txtpath1.Text = filePath;
        }
        else
        {
            Label1.Visible = true;
            Label1.Text = "You can upload ony images or PDF files.";
        }
    }
}

private bool CheckFileType(string fileName)
{
    string ext = Path.GetExtension(fileName);
    switch (ext.ToLower())
    {
        case ".gif":
        case ".png":
        case ".jpg":
        case ".jpeg":
        case ".pdf":
            return true;
        default:
            return false;
    }

}

j snooze

Это может оказаться более полезным.
https://www.w3schools.com/tags/att_input_accept.asp

Laxmidhar tatwa technologies

переключатель (ext.ToLower())
{
дело ".gif":
дело ".png":
чехол ".в формате JPG":
чехол ".в формате JPEG":
чехол ".формат PDF":
вернуть true;
перерыв;
по умолчанию:
возвращать false;
}

Laxmidhar tatwa technologies

после возвращения истинный брейк; должен быть там

1 Ответов

Рейтинг:
1

F-ES Sitecore

Вы можете использовать событие onchange элемента управления fileupload

JavaScript Fileupload Object : обработчики событий onchange - w3resource[^]

Однако это не сработает для того, что вы хотите сделать. Выбранный вами файл не может быть "запомнен" между обратными отправками, поэтому, если вы нажмете программно кнопку или сделаете что-нибудь еще, чтобы отправить файл на сервер, например отправите форму, то ваш код проверит расширение файла, но когда страница вернется, элемент управления файлом снова будет пуст, и вы ничего не сможете с этим поделать.

Поэтому, если вы хотите проверить расширение файла перед загрузкой, вам нужно сделать это с помощью javascript. Вам все еще нужен ваш серверный код, хотя злонамеренные люди могут обойти ваш javascript.

Есть различные способы сделать это, если вы google, но вот некоторые из них

Проверка загрузки файлов с помощью html5 file api – BinaryTides[^]

Проверьте размер файла и расширение перед загрузкой с помощью jQuery | All PHP Tricks[^]