Что такое код asp file


Содержание

ASP — Включение файлов

Включение на стороне сервера. Директивы включения дают возможность включения в файл содержимого другого файла перед обработкой его веб-сервером. В ASP этот механизм поддерживается только директивой #include. Для вставки файла в файл .asp используется следующий синтаксис:

Ключевые слова virtual и file обозначают тип пути, используемый для включения файла, а имя_файла представляет собой путь и имя файла, который требуется включить.

Включаемые файлы могут иметь любое расширение, но удобно давать им расширение, отличающее их от других файлов.

Использование ключевого слова Virtual

Ключевое слово virtual указывает, что путь начинается с виртуального каталога. Например, если файл Footer.inc расположен в виртуальном каталоге /Myapp, следующая строка вставит содержимое файла Footer.inc в файл, содержащий эту строку:

Использование ключевого слова File

Ключевое слово file указывает, что используется относительный путь. Относительный путь начинается с каталога, содержащего файл, в который включается другой файл. Например, если данный файл находится в каталоге Myapp, а файл Header1.inc — в каталоге Myapp\Headers, следующая строка вставит файл Header1.inc в данный файл:

Имейте в виду, что путь к включаемому файлу, Headers\header1.inc, является относительным к данному файлу; если сценарий, содержащий эту инструкцию #include, находится не в каталоге /Myapp, эта инструкция не будет работать.

В ключевом слове file также можно использовать ссылки ( ..\ ) на файлы в родительском каталоге (или каталоге верхнего уровня), если в оснастке IIS установлен флажок Включить пути к родительским каталогам. Дополнительные сведения см. в разделе Настройка приложений ASP.

Расположение включаемых файлов

ASP обнаруживает изменения во включаемом файле независимо от его расположения и включает содержимое файлов при следующем запросе обозревателем файла .asp, включающего этот файл. Однако, в общем случае проще включать файлы с обеспечением защиты, если они находятся на одном веб-узле в пределах одного приложения. Для обеспечения лучшей защиты рекомендуется располагать включаемые файлы в отдельном каталоге в пределах приложения, например, в каталоге \Includes, и применять к нему только соответствующие разрешения на выполнение (на веб-сервере). Дополнительные сведения см. в разделе Задание разрешений для веб-сервера.

Важно! По умолчанию ко всем файлам на веб-сервере применяются разрешения на чтение. Для того, чтобы предотвратить просмотр содержимого включаемых файлов пользователями, запретите чтение файлов из каталога Include.

Включение файлов: советы и предупреждения

Включаемые файлы могут, в свою очередь, включать другие файлы. Файлы .asp также могут включать один файл несколько раз, при условии что директивы #include не вызовут зацикливание. Например, если файл First.asp включает файл Second.inc, файл Second.inc не должен включать файл First.asp. В противном случае файл будет включен сам в себя. В ASP предусмотрено обнаружение таких зацикливаний и ошибок вложения, в таких случаях выдается сообщение об ошибке, а обработка запрошенного файла .asp прекращается.

ASP включает файлы до выполнения команд сценариев. Таким образом, команду сценария нельзя использовать для построения имени включаемого файла. Например, следующий сценарий не сможет открыть файл Header1.inc, так как в ASP попытка выполнить директиву #include будет предпринята раньше, чем имя файла будет назначено переменной name .

Команды и процедуры сценариев полностью должны быть заключены в ограничители сценариев , теги HTML или теги HTML . То есть, нельзя открыть ограничитель сценариев во включающем файле .asp и закрыть его во включаемом файле; сценарий или команда сценария должны присутствовать в виде отдельных законченных модулей. Например, следующий сценарий не будет работать:

Следующий сценарий будет работать:

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

Иногда может потребоваться включить файл на стороне сервера с помощью тегов HTML . Например, следующий сценарий включает файл (посредством относительного пути), который можно выполнять на сервере:

В следующей таблице приведен правильный синтаксис включения файлов с атрибутом SRC посредством виртуального или относительного пути:

Тип пути Синтаксис Пример
Относительный SRC=»путь\имя_файла« SRC=»Utilities\Test.asp»
Виртуальный SRC=»/путь/имя_файла« SRC=»/MyScripts/Digital.asp»
Виртуальный SRC=»\путь\имя_файла« SRC=»\RegApps\Process.asp»

Примечание. При использовании этого метода между тегами

Расширение файла ASP

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

Информация о файле ASP

Полное название файла Производитель Популярность
Active Server Page Script Page Microsoft

Что такое файл ASP?

ASP-файл — это веб-страница, созданная веб-разработчиком, который находится на веб-сервере и может содержать скрипты, написанные на VBScript или JavaScript. Он анализируется на сервере, который генерирует HTML, который отправляется в браузер клиента. Файлы ASP обычно используются сайтами ASP.NET и веб-сайтами, размещенными на серверах Windows с Microsoft IIS.

Файлы ASP похожи на файлы .HTML, но используются несколько иначе. Когда веб-браузер запрашивает HTML-файл, сервер просто отправляет файл. Однако, когда веб-браузер запрашивает файл ASP, сервер отправляет запрос через механизм ASP, который анализирует файл ASP и генерирует простой HTML-код, который отправляется в браузер клиента. Поскольку страницы ASP обрабатываются на сервере, посетители сайта не видят фактического кода ASP, а всего лишь HTML, сгенерированного из сценариев на странице. Страницы ASP обычно используют расширение «.Asp», а не «.Html».

С момента выпуска ASP 1.0 в 1996 году в 2000 году были только две версии: ASP 2.0 и ASP 3.0. В 2002 году Microsoft выпустила ASP.NET, которая заменила ASP. Теперь ASP обычно называют классическим ASP или ASP Classic. Из-за широкой реализации структуры ASP.NET страницы ASP в значительной степени были заменены страницами .ASPX. Некоторые преимущества ASP.NET для ASP — использование большего количества языков, таких как C #, VB.NET, J # и Delphi.NET, а также улучшенная производительность с помощью скомпилированного кода, более совершенная отладка и улучшенная обработка ошибок во время выполнения.

Default.Asp — веб-страница по умолчанию, загружаемая, когда клиентский браузер запрашивает каталог веб-сервера на сервере Microsoft IIS. Например, когда клиент запрашивает http://www.Sampledomain.Com/, сервер загружает http://www.Sampledomain.Com/Default.Asp, если только он не настроен на загрузку другого файла.

Как открыть файл ASP?

Самая частая проблема, выступающая в момент, когда Вы не можете открыть файл ASP парадоксальная, — отсутствие установленной соответствующей программы на Вашем устройстве. Решение очень простое, достаточно выбрать и установить одну программу (или несколько) для обслуживания ASP из списка, который Вы найдете на этой странице. После правильной установки компьютер должен сам связать установленное программное обеспечение с файлом ASP которого Вы не можете открыть.

Что такое код asp file

Этот текст предназначен для тех, кто никогда не имел дела с ASP и вообще смутно себе представляет возможности программирования на стороне сервера. Я ставил себе задачу создать у читателя общее представление о предмете. Отдельные неточности при этом менее важны — пожалуйста, громко не ругайтесь.

Общие сведения

ASP (Active Server Pages) – это мощная технология от Microsoft, позволяющая легко разрабатывать приложения для WWW. ASP работает на платформе Windows NT и IIS (Internet Information Server), начиная с версии 3, хотя вроде есть реализации на других платформах. ASP – это не язык программирования, это внутренняя технология, позволяющая подключать программы к Web-страницам. Основа успеха ASP – простой скриптовый язык (Visual Basic Script или Java Script) и возможность использования внешних COM-компонент.

Как это все происходит?

Вы пишете программу и складываете в файл на сервере. Браузер клиента запрашивает файл. Файл сначала интерпретируется сервером, на выходе производится HTML-код. Этот HTML посылается клиенту. Файлы с программами имеют расширение .asp. Файлы asp – это обычные текстовые файлы, содержащие исходные тексты программ. Файлы делаются с помощью любого текстового редактора. Каталог, в котором размещены файлы asp должен иметь права на выполнение, так как сервер исполняет эти файлы, когда браузер их запрашивает. Собственно программы пишутся на любом скриптовом языке, который установлен в системе. По умолчанию поддерживаются VBScript и JavaScript. Можно доустановить другие (например, Perl). Если ничего специально не указывать используется VBScript. В дальнейшем будем ссылаться только на него. Программные фрагменты заключаются в скобки . Можно ставить открывающую скобку в начале файла, закрывающую – в конце, все что между ними – программа на Visual Basic’е.

Какие средства есть для программирования?

Web – нормальная среда программирования, если правильно понять, что есть что. В VBScript есть все нормальные конструкции структурного программирования (if, while, case, etc). Есть переменные (описывать не обязательно, тип явно не задается). Поддерживаются объекты. Работа с ними обычная – Object.Property, Object.Method. Есть ряд встроенных объектов (Request, Response, Session, Server, Connection, Recordset). Можно доустанавливать другие компоненты (скачивать, покупать, программировать), например для работы с электронной почтой.

Вывод

Понятия «экран», куда можно выводить данные нет. Все, что надо показать пользователю, выбрасывается в выходной поток на языке HTML. Браузер пользователя интерпретирует этот HTML. Для упрощения вывода существует объект Response . Вывод осуществляется с помощью метода Write .

Так производится запись во внутренний буфер объекта Response. Когда скрипт заканчивает работу, весь буфер выдается клиенту. Надо заметить, что клиент получает «чистый» HTML, таким образом программы на ASP не зависят от клиентского ПО, что очень важно. Если внутри выводимой строки нужно использовать кавычку, кавычка удваивается. Другие методы и свойства Response позволяют управлять выводом. Так Response.Buffer регулирует, получает ли клиент данные по мере из записи в Response, или все сразу по завершении исполнения страницы. Метод Response.Redirect перенаправляет браузер на другую страницу. Чтобы им пользоваться, нельзя до него на странице использовать Response.Write.

Программа на ASP не может явно спросить пользователя о чем-то. Она получает данные из других страниц, либо через URL. Передаваемые параметры помещаются во входной поток и доступны через объект Request . Чтобы передать переменную var в программу test.asp , надо написать:

Чтобы из программы получить значение этой переменной, надо написать:

Несколько переменных разделяется знаком &:

Кроме того, чтобы задавать параметры в URL, можно воспользоваться формами HTML. В вызывающей странице пишем так:

Так это выглядит:

При этом пользователь увидит форму из одного поля ввода (var1), в нем будет значение по умолчанию «default». Второе поле (var2) будет невидимо и будет передавать всегда фиксированное значение «var2value». Кнопка «Submit Form» завершает заполнение формы и передает все переменные на test.asp (action). Если method=»get», переменные передаются через URL (test.asp?var1=default&var2=var2value). Если method=»post», передаются вместе с запросом так, что внешне передача переменных не заметна. В вызываемой программе безразлично, какой метод изпользовался (почти). Если у вас нет специальных аргументов за метод GET, используйте метод POST.

Формы

Формы HTML используются для организации диалога с пользователем. Поддерживаются стандартные элементы управления. Все многообразие задается немногими тэгами:

  • INPUT (с параметром TYPE=)
  • SELECT
  • TEXTAREA

Описание – в документации по HTML.

Взаимосвязь между отдельными страницами

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

Один из методов решения этой проблемы — cookies . Пользователю при первом обращении выдается специальный идентификатор, после этого браузер пользователя предъявляет этот идентификатор при каждом обращении, и сервер может распознать, что это тот же самый пользователь. Пользователь может отключить cookies, в этом случае этот метод не работает.

ASP, используя cookies, предоставляет программисту более простое средство — объект Session (сессия). Сессия стартует, когда новый пользователь обращается к любому asp-файлу приложения. Сессия заканчивается при отсутствии активности пользователя в течение 20 минут, либо по явной команде. Специальный объект Session хранит состояние сессии. Туда можно записывать переменные, которые доступны из любой страницы в этой сессии. Записать данные в этот объект можно просто:

Считать потом еще проще:

Сессия, таким образом, – это еще один метод передачи данных между страницами. Одна страница пишет данные в сессию, другая – берет потом оттуда.

Наряду с объектом Session существует объект Application . Если сессия создается для каждого нового пользователя, до Application существует в единственном экземпляре, и может использоваться всеми страницами приложения.

Управление приложением

Программисту предоставляется возможность реагировать на 4 события: старт/стоп приложения и старт/стоп каждой сессии. Для реализации этих событий предназначен файл global.asa , который должен располагаться в корневом каталоге приложения. Вот его примерный скелет:

Нужно «просто» вписать Ваш код на соответствующее место. Нужно заметить, что отлаживать код для global.asa довольно непросто, так как он выполняется при очень специфических обстоятельствах (к примеру при старте или остановке сервера).

Использование внешних компонент

Если на сервере установлены дополнительные компоненты, их можно использовать из ASP. Стандартные объекты (например из библиотек ADO (Connection и Recordset) и Scripting (Dictionary, FileSystemObject)) доступны всегда. Установка новой компоненты обычно состоит в копировании dll-файла в каталог на сервере и ее регистрации с помощью программы regsvr32.exe. [В COM+ используется своя процедура инсталляции объектов, это однако не влияет на использования объектов.]

Создать экземпляр объекта можно так:

Class.Object указываются в документации на компоненту. В переменной var запоминается ссылка на созданный экземпляр объекта. Когда объект не нужен, ссылку нужно обнулить с помощью команды:

Пожалуйста всегда обнуляйте все ссылки на объекты, когда они больше не нужны. Теоретически это должно происходить автоматически при завершении процедуры/страницы, однако в стандартной сборке мусора есть определенные «проблемы».

В остальном использование компоненты зависит от самой этой компоненты.

Работа с базами данных

Из ASP можно легко и просто работать с любыми базами данных. Это делается через две промежуточные технологии: ODBC и ADO.

ODBC позволяет организовать доступ к любым базам данных через унифицированный интерфейс с помощью языка SQL. Специфика конкретных СУБД учитывается при помощи специальных драйверов БД. Такие драйверы существуют для всевозможных СУБД (в частности SQL Server, Oracle, Access, FoxPro). Поддержка ODBC обеспечивается на уровне операционной системы Windows (NT). Настройка – через Control Panel/ODBC. Базовым понятием является источник данных или data source. Источник данных – это совокупность сведений о базе данных, включая ее драйвер, имя компьютера и файла, параметры. Чтобы пользоваться базой надо создать источник данных для нее. Важно, чтобы источник данных был «системным», в отличии от «пользовательского». После этого надо лишь знать имя источника данных. [В настоящее время ODBC отступает перед натиском технологии OLE DB. На практике это однако практически ничего не изменяет. Вместо имени источника данных нужно использовать Connection String, в которой указывается имя ODBC-драйвера и все его параметры.]

ADO – это совокупность объектов, доступных из ASP, позволяющих обращаться к источнику данных ODBC [или OLE DB]. Фактически нужны лишь 2 объекта – Connection , представляющий соединение с базой данных и Recordset , представляющий набор записей, полученный от источника. Сначала необходимо открыть соединение, потом к нему привязать Recordset, потом, пользуясь методами Recordset’а, обрабатывать данные. Вот пример:

Если команда SQL не возвращает данных, recordset не нужен, надо пользоваться методом Conn. Execute (SQL_COMMAND).

Если Вы хотите вызывать хранимые процедуры сервера БД с параметрами, нужно воспользоваться объектом Command , который в свою очеред содержит объекты Parameter .

Методики программирования, советы


Описание переменных

VBScript — очень нетребовательный к программисту язык. Так он не требует описывать переменные и не содержит явных типов данных. Все переменные принадлежат одному типу Variant . Из-за отсутствия описаний могут произойти очень трудно обнаруживаемые ошибки. Одна опечатка может стоить полдня поисков.

Однако, есть возможность явно потребовать описания переменных. Для этого первой строкой в ASP-файле нужно написать Option Explicit . После этого обращение к переменной, которая не была объявлена с помощью Dim , вызывает ошибку с указанием номера строки.

Кстати, где расположены описания Dim в процедуре — совершенно не важно. Они могут стоять как до использования переменной, так и после, и даже в цикле. Видимо они отрабатываются препроцессором. Явно задать тип переменной с помощью Dim Var as Typ , как в Visual Basic, все равно нельзя.


Чередование ASP/HTML

Если нужно выдать большой кусок HTML, можно не пользоваться Response.Write. Если в asp-файле встречается кусок текста вне скобок , он трактуется просто как HTML, который надо вывести. Пример:

Обработка ошибок

Для отслеживания ошибок используется специальный объект Err . Он устанавливается в ненулевое значение, если предыдущая команда породила ошибку. Ее можно проверять с помощью If, и таким образом реагировать на ошибки. Чтобы из-за ошибки не прерывалось выполнение программы, в начале нужно включить команду

Включение других файлов

Можно выносить повторяющийся код в отдельный файл, и подключать к разным другим по мере необходимости с помощью команды include . Это очень удобно, если вы хотите вынести повторяющийся код в отдельный файл и использовать снова и снова в разных страницах:

Важно: все includes в тексте отрабатываются до исполнения файла. Т.е. даже если include стоит внутри if, то сначала будут включены все includes во всех ветках, и только потом, во время исполнения, будет принятно решение, какую ветку выполнять. Т.е. следующий код не дает условного включения файлов:

Обработка форм

Если надо что-то спросить у пользователя и на основании этого что-то сделать, в простейшем случае создается два файла: один с формой, второй – с ее обработчиком. Обработчик выполняет все действия. Пример:

Рекурсивная обработка форм

Удобный метод состоит в том, чтобы сбор данных и обработку осуществлял один и тот же файл. Для этого пишется asp, в котором есть разные разделы. Специальная переменная отвечает за выбор раздела при запуске. Пример:

Переменные HTTP

Запрос от браузера, кроме запрашиваемой страницы несет еще некоторые данные. Эти данные, например, IP-адрес клиента, доступны через специальные переменные объекта Request. IP-адрес – Request(«REMOTE_ADDR»). Другие — см.документацию (ASPSamp\Samples\srvvar.asp).

Переадресация

Очень легко написать на ASP скрипт, который будет производить некоторые расчеты, и в зависимости от результатов переадресовывать браузер на разные URL (например, подставлять нужный баннер). Делается это так:

Только надо следить, чтобы до выполнения команды redirect ничего не было записано в Response (даже коментарии HTML).

Электронная почта

Одна из часто встречающихся задач – отправить электронную почту с Web-страницы. На первый взгляд, можно просто написать

Но это приводит к тому, что при отправке формы делается попытка на клиентской машине запустить почтовую программу и создать новое сообщение с данными формы. Если это не получается (почтовая программа не настроена, пользователь не отправил почту, и т.д.) — письмо и не будет отправлено. Гораздо надежнее работает серверное решение.

Для этого существуют внешние компоненты, есть и бесплатные. Например, компонента Jmail от Dimac. Все, что для нее нужно – это адрес SMTP-сервера. Вот пример ее использования:

Что такое файлы ASCX – как открыть и проверить

Файл с расширением ASCX используется для веб-управления пользователями ASP.NET, и расшифровывается как расширение активного серверного управления. По сути, файлы ASCX позволяют легко использовать один и тот же код на нескольких веб-страницах ASP.NET, экономя время и энергию при создании веб-сайта.

Например, несколько файлов ASPX на веб-сайте могут ссылаться на один файл ASCX, который содержит код для меню навигации сайта. Вместо того чтобы писать один и тот же код на каждой странице веб-сайта, которой требуется меню, каждая страница может просто указывать на файл ASCX, что значительно упрощает управление и обновление меню на каждой странице.

Учитывая эффективность файлов ASCX при упрощении программирования на ASP.NET, эти файлы часто используются для других непротиворечивых частей веб-сайта, таких как верхние и нижние колонтитулы и т.д.

Если вы знаете, что ваш ASCX-файл не имеет ничего общего с веб-сайтом ASP, например, если вы скачали его случайно, пытаясь получить выписку по счету или какой-либо другой документ, то вам следует относиться к нему иначе, чем к реальному файлу управления пользователя ASP.NET.

Как открыть файл ASCX

Microsoft Visual Web Developer и Visual Studio могут открывать и редактировать файлы ASCX, а также Adobe Dreamweaver.

Если вам нужно открыть файл ASCX на Mac, TextMate должен справиться.

Хотя файл ASCX связан с файлом ASPX (который можно просмотреть в браузере), сам файл ASCX не предназначен для открытия браузером. Если вы загрузили файл ASCX и ожидали, что он будет содержать информацию (например, документ или другие сохраненные данные), вероятно, что-то не так с веб-сайтом, и вместо того, чтобы генерировать полезную информацию, которую вы искали, он предоставил эту серверную часть вместо нужного файла.

Если это произойдет, попробуйте загрузить файл ещё раз или просто переименовать файл, чтобы использовать расширение, которое вы ожидали. Иногда это работает.

Например, если вы намеревались загрузить файл PDF, но вместо этого получили файл ASCX, просто переименуйте часть файла ASCX в PDF, например, file.ascx в file.pdf.

Переименование файла для использования другого расширения – это не то же самое, что преобразование файла в новый формат. В этом случае вы просто правильно именуете файл в его фактический формат (в этом примере PDF), что должен был сделать веб-сайт, но по какой-то причине он ошибся. Это позволяет ОС правильно распознавать, какую программу следует использовать для открытия файла (например, для чтения PDF-файлов).

Как конвертировать файл ASCX

Конвертер файлов обычно рекомендуется для преобразования большинства типов файлов, например, видео, музыкальных файлов, изображений, документов и т.д.

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

Например, конвертация рабочего файла с расширением .ASCX на любое другое, означает, что все файлы ASPX, указывающие на этот файл ASCX, перестанут понимать, для чего этот файл, и поэтому не поймут, как использовать его содержимое для отображения меню, заголовков и т.д.

Однако, обратное преобразование может быть полезным: преобразование страницы ASPX в файл ASP.NET Web User Control с расширением ASCX. Чтобы это произошло, необходимо внести ряд ручных изменений, поэтому неукоснительно следуйте инструкциям Microsoft .

У Microsoft есть ещё одно руководство по преобразованию файла ASCX в распространяемый пользовательский элемент управления (файл DLL). Если вы знаете что-нибудь о DLL-файлах, возможно, вы уже поняли, что ASCX-файлы ведут себя очень похоже на общие DLL-файлы на вашем компьютере с Windows.

Дополнительная информация о файлах ASCX

ASCX-файлы и ASPX-файлы состоят из очень похожего кода, но файлы Web User Control не содержат элементов html, body или form.

Руководство Microsoft по созданию пользовательских элементов управления ASP.NET объясняет шаги, необходимые для создания файла ASCX, а в Bean Software есть несколько хороших примеров того, как добавить файлы веб-элемента управления на страницу ASP.NET.

Всё ещё не можете открыть файл ASCX

Если после попытки выполнения вышеуказанных инструкций ваш файл ASCX по-прежнему не открывается должным образом, есть большая вероятность, что вы, на самом деле, не имеете дело с файлом ASCX. Некоторые форматы файлов используют расширение, которое очень похоже на «.ASCX», хотя форматы не связаны между собой.

Например, файлы ACX могут выглядеть так, как будто они каким-то образом связаны с файлами ASCX, но на самом деле это программные файлы Atari ST, которые можно использовать на компьютере с эмулятором Atari ST, например Gemulator. Они не будут открываться с помощью средства открытия файлов ASCX.

То же самое понятие справедливо и для других файлов, таких как ACSM, ASAX и ASX (Microsoft ASF редиректор). Если у вас есть один из этих файлов или любой другой файл, который выглядит как файл ASCX, изучите его реальное расширение, чтобы узнать, какие программы могут его открыть или преобразовать.

Расширение файла ASP

В таблице ниже предоставляет полезную информацию о расширение файла .asp. Он отвечает на вопросы такие, как:

  • Что такое файл .asp?
  • Какое программное обеспечение мне нужно открыть файл .asp?
  • Как файл .asp быть открыты, отредактированы или напечатано?
  • Как конвертировать .asp файлов в другой формат?

Оглавление

  • ✅ Active Server Page
  • ✅ Alphacam Stone Post Data
  • ✅ MGS Antenna SPK File
  • �� Конвертеры файлов .asp
  • �� Ошибки, связанные с файла .asp.

Мы надеемся, что вы найдете на этой странице полезный и ценный ресурс!

3 расширений и 0 псевдонимы, найденных в базе данных

✅ Active Server Page

✅ Alphacam Stone Post Data

✅ MGS Antenna SPK File

Другие типы файлов могут также использовать расширение файла .asp.

�� Расширение файла .asp часто дается неправильно!

По данным Поиск на нашем сайте эти опечатки были наиболее распространенными в прошлом году:

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

Мы нашли следующие аналогичные расширений файлов в нашей базе данных:

�� Не удается открыть файл .asp?

Если дважды щелкнуть файл, чтобы открыть его, Windows проверяет расширение имени файла. Если Windows распознает расширение имени файла, файл открывается в программе, которая связана с этим расширением имени файла. Когда Windows не распознает расширение имени файла, появляется следующее сообщение:

Windows не удается открыть этот файл:

Чтобы открыть этот файл, Windows необходимо знать, какую программу вы хотите использовать для его открытия.

Если вы не знаете как настроить сопоставления файлов .asp, проверьте FAQ.

�� Можно ли изменить расширение файлов?

Изменение имени файла расширение файла не является хорошей идеей. Когда вы меняете расширение файла, вы изменить способ программы на вашем компьютере чтения файла. Проблема заключается в том, что изменение расширения файла не изменяет формат файла.

Если у вас есть полезная информация о расширение файла .asp, напишите нам!

�� Оцените нашу страницу ASP

Пожалуйста, помогите нам, оценив нашу страницу ASP в 5-звездочной рейтинговой системе ниже. (1 звезда плохая, 5 звезд отличная)

Файл с расширением .asp

Общие сведения

Создаваемая сервером веб, страница, которая может содержать сценарии, написанные на VBScript, C# или JavaScript. Анализируется на сервере, который создает HTML, посылаемый клиентскому веб-браузеру. Обычно применяется сайтами ASP.NET и веб-сайтами, хранящимися на серверах Microsoft на основе IIS.

Поскольку страницы ASP обрабатываются на сервере, посетители веб-сайта не видят сам код ASP, только HTML, создаваемый из сценария со страницы. Страницы ASP обычно используют расширение «.asp», а не «.html».

Описание на русском Web-страница, скрипт ASP
Описание на английском Active Server Page
Разработчик Microsoft


Расширение файла .asp представляет собой Web-страницу, скрипт ASP. Данный файл может быть открыт с помощью следующих программ: Любой web-браузер, Любой текстовый редактор, Microsoft IIS, Adobe Dreamweaver CC.

Открытие ASP файлов

У вас есть проблема с открытием .ASP-файлов? Мы собираем информацию о файловых форматах и можем рассказать для чего нужны файлы ASP. Дополнительно мы рекомендуем программы, которые больше всего подходят для открытия или конвертирования таких файлов.

Для чего нужен файловый формат .ASP?

Файловое расширение .asp является обозначением «Active Server Pages» (Активные серверные страницы, ASP) и относится к типу файлов «Скрипт ASP» (.asp). ASP представляет собой серверную платформу для веб-приложений, разработанную Майкрософт для своей серверной технологии на базе Windows IIS (Internet Information Services). ASP получил дальнейшее развитие, став основой для ASP.NET. В отличие от ASP, файлы страниц ASP.NET по умолчанию имеют расширение .aspx.

Хотя ASP является Windows-ориентированной технологией, скриптовые страницы ASP можно размещать на ставшем стандартом веб-сервере Apache на других платформах, при условии подключения дополнительных модулей и индивидуальной настройки сервера.

Файл .asp — это обычный текстовый файл, содержащий HTML-разметку со вставками кода VBScript или JScript, а также возможными ссылками на объекты COM/ActiveX. Как и в случае с PHP, перед выдачей клиенту динамически генерируемого окончательного HTML-кода ASP-страница должна быть обязательно обработана сервером. Скрипты ASP можно создавать и открывать в виде исходного кода в любом текстовом редакторе.

В среде Apple Mac OS X расширение .asp отдельно ассоциируется с приложением Apple System Profiler (Сведения о системе Apple, ASP), обозначая тип/формат файлов «Отчет ASP» (.asp). Это часто приводит к неправильной обработке файлов Active Server Pages (ASP) на компьютерах Apple и, как правило, требует ручного указания приложения для открытия файла через команду «Открыть с помощью. «.

Расширение .asp

3 расширения(ы) и 0 псевдоним(ы) в нашей базе данных

Ниже вы можете найти ответы на следующие вопросы:

  • Что такое .asp файл?
  • Какая программа может создать .asp файл?
  • Где можно найти описание .asp формат?
  • Что может конвертировать .asp файлы в другой формат?
  • Какие MIME-тип связан с .asp расширение?

Active Server Page

Alphacam Stone Post Data

MGS Antenna SPK File

Другие типы файлов могут также использовать .asp расширение файла. Если у вас есть полезная информация о .asp расширение, написать нам!

Возможно ли, что расширение файла с ошибками?

Мы нашли следующие похожие расширения в нашей базе:

.asp Расширение файла часто дается неправильно!

Согласно поисках на нашем сайте, эти опечатки были наиболее распространенными в прошлом году:

Не удается открыть .asp файл?

Если вы хотите открыть .asp файл на вашем компьютере, вам просто необходимо иметь соответствующие программы установлены. Если asp Ассоциации установлены неправильно, вы можете получить следующее сообщение об ошибке:

Не удалось открыть этот файл:

Чтобы открыть этот файл, Windows необходимо знать, какую программу вы хотите использовать, чтобы открыть его. Окна могут выходить в интернет, чтобы искать его автоматически, или вы можете вручную выбрать из списка программ, установленных на вашем компьютере.

Чтобы изменить ассоциации файлов:

  • Щелкните правой кнопкой мыши файл с расширением чье сотрудничество вы хотите изменить, а затем нажмите Открыть с.
  • В Открыть с помощью диалоговое окно, выберите программу ти котором вы хотите, чтобы открыть файл, или нажмите Обзор, чтобы найти программу, которую вы хотите.
  • Выберите Всегда использовать выбранную программу, чтобы открыть такой файл флажок.

Поддерживаемые операционные системы

Windows Server 2003/2008/2012/2020, Windows 7, Windows 8, Windows 10, Linux, FreeBSD, NetBSD, OpenBSD, Mac OS X, iOS, Android

Файл с расширением .asp

Чем открыть, описание – 2 формата файла
  1. Web-страница, скрипт ASP — Интернет, web файлы
  2. Файл настроек преобразования цветов Adobe — Файлы настроек
Как, чем открыть файл .asp?

Инструкция — как выбрать программу из списка, скачать и использовать ее для открытия файла

Похожие форматы
Как, чем открыть файл .asp?

Инструкция — как выбрать программу из списка, скачать и использовать ее для открытия файла

Похожие форматы

Для более точного определения формата и программ для открытия файла используйте функцию определения формата файла по расширению и по данным (заголовку) файла.

Передача файлов в ASP.NET Core Upload files in ASP.NET Core

Действия ASP.NET Core поддерживают передачу одного или нескольких файлов с помощью привязки модели с буферизацией для небольших файлов или потоковой передачи без буферизации для более крупных файлов. ASP.NET Core supports uploading one or more files using buffered model binding for smaller files and unbuffered streaming for larger files.

Замечания по безопасности Security considerations

Необходимо соблюдать осторожность при предоставлении пользователям возможности отправки файлов на сервер. Use caution when providing users with the ability to upload files to a server. Злоумышленники могут попытаться: Attackers may attempt to:

  • Выполнить атаку типа отказ в обслуживании. Execute denial of service attacks.
  • Передать вирусы и вредоносные программы. Upload viruses or malware.
  • Нарушить безопасность сетей и серверов другими способами. Compromise networks and servers in other ways.

Ниже приведены некоторые действия по обеспечению безопасности, которые снижают вероятность успешных атак. Security steps that reduce the likelihood of a successful attack are:

  • Передавайте файлы в выделенную область для отправки файлов, желательно не на системный диск. Upload files to a dedicated file upload area, preferably to a non-system drive. Использование выделенного расположения упрощает применение мер безопасности к отправленным файлам. A dedicated location makes it easier to impose security restrictions on uploaded files. Отключите разрешения на выполнение для расположения отправки файла.† Disable execute permissions on the file upload location.†
  • Не сохраняйте переданные файлы в дереве каталогов, где находится приложение.† Do not persist uploaded files in the same directory tree as the app.†
  • Используйте безопасное имя файла, определяемое приложением. Use a safe file name determined by the app. Не используйте имя файла, предоставленное пользователем, или ненадежное имя переданного файла.† Кодируйте в формате HTML ненадежное имя файла при его отображении. Don’t use a file name provided by the user or the untrusted file name of the uploaded file.† HTML encode the untrusted file name when displaying it. Например, при записи имени файла в журнал или отображении в пользовательском интерфейсе (Razor автоматически кодирует выходные данные в формате HTML). For example, logging the file name or displaying in UI (Razor automatically HTML encodes output).
  • Разрешите только утвержденные расширения файлов для спецификации на проектирование приложения.† Allow only approved file extensions for the app’s design specification.†
  • Убедитесь, что проверки на стороне клиента выполняются и на сервере.† Проверки на стороне клиента можно легко обойти. Verify that client-side checks are performed on the server.† Client-side checks are easy to circumvent.
  • Проверьте размер отправленного файла. Check the size of an uploaded file. Установите максимальный предельный размер, чтобы предотвратить передачу больших объемов данных.† Set a maximum size limit to prevent large uploads.†
  • Если файлы не должны перезаписываться переданным файлом с тем же именем, перед отправкой файла проверьте его имя в базе данных или физическом хранилище. When files shouldn’t be overwritten by an uploaded file with the same name, check the file name against the database or physical storage before uploading the file.
  • Запустите сканер для проверки отправляемого содержимого на наличие вирусов и вредоносных программ, прежде чем сохранять файл.Run a virus/malware scanner on uploaded content before the file is stored.

†Пример приложения демонстрирует подход, который соответствует критериям. †The sample app demonstrates an approach that meets the criteria.

Отправка в систему вредоносного кода часто является первым шагом перед выполнением кода, который может: Uploading malicious code to a system is frequently the first step to executing code that can:

  • полностью получить контроль над системой; Completely gain control of a system.
  • перезагрузить систему так, что она окажется в неработоспособном состоянии; Overload a system with the result that the system crashes.
  • скомпрометировать пользовательские или системные данные; Compromise user or system data.
  • применить граффити к открытому интерфейсу. Apply graffiti to a public UI.

Сведения об уменьшении контактной зоны атаки во время приема файлов от пользователей см. в следующих ресурсах: For information on reducing the attack surface area when accepting files from users, see the following resources:

Дополнительные сведения о реализации мер безопасности, включая примеры из примера приложения, см. в статье Передача файлов в ASP.NET Core. For more information on implementing security measures, including examples from the sample app, see the Validation section.

Сценарии использования хранилища Storage scenarios

К общим вариантам хранилища файлов относятся следующие: Common storage options for files include:

База данных Database

  • В случае отправки небольших файлов база данных часто работает быстрее, чем физическое хранилище (файловая система или сетевая папка). For small file uploads, a database is often faster than physical storage (file system or network share) options.
  • База данных часто более удобна по сравнению с вариантами физического хранилища, так как получение записи из базы пользовательских данных может одновременно предоставить содержимое файла (например, изображение аватара). A database is often more convenient than physical storage options because retrieval of a database record for user data can concurrently supply the file content (for example, an avatar image).
  • Эксплуатация базы данных потенциально дешевле, чем использование службы хранилища данных. A database is potentially less expensive than using a data storage service.

Физическое хранилище (файловая система или сетевая папка). Physical storage (file system or network share)

  • Обработка передачи больших файлов: For large file uploads:
    • Ограничения базы данных могут ограничивать размер передачи. Database limits may restrict the size of the upload.
    • Физическое хранилище часто менее экономически выгодно, чем хранилище в базе данных. Physical storage is often less economical than storage in a database.
  • Эксплуатация физического хранилища потенциально дешевле, чем использование службы хранилища данных. Physical storage is potentially less expensive than using a data storage service.
  • Процесс приложения должен иметь разрешения на чтение и запись для места хранения. The app’s process must have read and write permissions to the storage location. Никогда не предоставляйте разрешение на выполнение.Never grant execute permission.

Служба хранилища данных (например, хранилище BLOB-объектов Azure). Data storage service (for example, Azure Blob Storage)

  • Обычно службы обеспечивают улучшенную масштабируемость и устойчивость по сравнению с локальными решениями, которые обычно подвержены единым точкам отказа. Services usually offer improved scalability and resiliency over on-premises solutions that are usually subject to single points of failure.
  • Затраты на использование служб обычно ниже в сценариях с крупномасштабной инфраструктурой хранения. Services are potentially lower cost in large storage infrastructure scenarios.

Дополнительные сведения см. в разделе Краткое руководство. Использование .NET для создания большого двоичного объекта в хранилище объектов. For more information, see Quickstart: Use .NET to create a blob in object storage. В этом разделе показан метод UploadFromFileAsync, но метод UploadFromStreamAsync можно использовать для сохранения FileStream в хранилище BLOB-объектов при работе с Stream. The topic demonstrates UploadFromFileAsync, but UploadFromStreamAsync can be used to save a FileStream to blob storage when working with a Stream.

Сценарии передачи файлов File upload scenarios

Есть два распространенных подхода к передаче файлов — буферизация и потоковая передача. Two general approaches for uploading files are buffering and streaming.

Буферизация Buffering

Весь файл считывается в IFormFile (представление файла на C#, используемого для обработки или сохранения файла). The entire file is read into an IFormFile, which is a C# representation of the file used to process or save the file.

Потребление ресурсов (диска, памяти) при передаче файлов зависит от количества и размера одновременно передаваемых файлов. The resources (disk, memory) used by file uploads depend on the number and size of concurrent file uploads. При попытке приложения поместить в буфер слишком много файлов может произойти аварийное завершение работы сайта из-за нехватки памяти или места на диске. If an app attempts to buffer too many uploads, the site crashes when it runs out of memory or disk space. Если размер или частота отправки файлов исчерпывают ресурсы приложения, используйте потоковую передачу. If the size or frequency of file uploads is exhausting app resources, use streaming.

Один буферизованный файл размером свыше 64 КБ перемещается из памяти во временный файл на диске. Any single buffered file exceeding 64 KB is moved from memory to a temp file on disk.


Буферизация небольших файлов описана в следующих разделах этой статьи: Buffering small files is covered in the following sections of this topic:

Потоковая передача Streaming

Файл можно получить с помощью составного запроса. Затем он обрабатывается или сохраняется приложением напрямую. The file is received from a multipart request and directly processed or saved by the app. Потоковая передача повышает производительность не значительно. Streaming doesn’t improve performance significantly. При отправке файлов потоковая передача снижает нагрузку на память или на место на диске. Streaming reduces the demands for memory or disk space when uploading files.

Потоковая передача больших файлов рассматривается в разделе Передача больших файлов с помощью потоковой передачи. Streaming large files is covered in the Upload large files with streaming section.

Передача небольших файлов с привязкой буферизованной модели к физическому хранилищу Upload small files with buffered model binding to physical storage

Для передачи небольших файлов можно применить составную форму или сформировать запрос POST на языке JavaScript. To upload small files, use a multipart form or construct a POST request using JavaScript.

В следующем примере демонстрируется использование формы Razor Pages для передачи одного файла (Pages/BufferedSingleFileUploadPhysical.cshtml в примере приложения): The following example demonstrates the use of a Razor Pages form to upload a single file (Pages/BufferedSingleFileUploadPhysical.cshtml in the sample app):

Следующий пример аналогичен предыдущему примеру, за исключением следующего: The following example is analogous to the prior example except that:

  • JavaScript (Fetch API) используется для отправки данных формы. JavaScript’s (Fetch API) is used to submit the form’s data.
  • Проверка не выполняется. There’s no validation.

Для выполнения отправки формы в JavaScript для клиентов, которые не поддерживают Fetch API, используйте один из следующих подходов: To perform the form POST in JavaScript for clients that don’t support the Fetch API, use one of the following approaches:

Используйте функцию Fetch Polyfill (например, window.fetch polyfill (github/fetch)). Use a Fetch Polyfill (for example, window.fetch polyfill (github/fetch)).

Используйте ключевое слово XMLHttpRequest . Use XMLHttpRequest . Например: For example:

Для поддержки передачи файлов в HTML-формах должен указываться тип кодировки enctype со значением multipart/form-data . In order to support file uploads, HTML forms must specify an encoding type ( enctype ) of multipart/form-data .

Для элемента ввода files , поддерживающего отправку нескольких файлов, в элементе необходимо указать атрибут multiple : For a files input element to support uploading multiple files provide the multiple attribute on the element:

Доступ к отдельным файлам, переданным на сервер, можно получать посредством привязки модели с помощью интерфейса IFormFile. The individual files uploaded to the server can be accessed through Model Binding using IFormFile. В примере приложения показано несколько отправок буферизованных файлов для баз данных и физических хранилищ. The sample app demonstrates multiple buffered file uploads for database and physical storage scenarios.

Не используйте свойство FileName объекта IFormFile, кроме как для отображения и ведения журнала. Do not use the FileName property of IFormFile other than for display and logging. При отображении или ведении журнала кодируйте имя файла в формате HTML. When displaying or logging, HTML encode the file name. Злоумышленник может предоставить имя вредоносного файла, включая полные или относительные пути. An attacker can provide a malicious filename, including full paths or relative paths. Приложения должны: Applications should:

  • удалить путь из имени файла, указываемого пользователем; Remove the path from the user-supplied filename.
  • сохранить имя файла, закодированное в формате HTML, откуда был удален путь, для пользовательского интерфейса или ведения журнала. Save the HTML-encoded, path-removed filename for UI or logging.
  • создать случайное имя файла для хранения. Generate a new random filename for storage.

Следующий код удаляет путь из имени файла: The following code removes the path from the file name:

В приведенных выше примерах не учитываются вопросы безопасности. The examples provided thus far don’t take into account security considerations. Дополнительные сведения приведены в следующих разделах и в примере приложения. Additional information is provided by the following sections and the sample app:

При отправке файлов с помощью привязки модели и IFormFile метод действия может принимать следующие файлы: When uploading files using model binding and IFormFile, the action method can accept:

  • Один файл IFormFile. A single IFormFile.
  • Любая из следующих коллекций, представляющих несколько файлов: Any of the following collections that represent several files:
    • IFormFileCollection
    • IEnumerable
    • List . List

Привязка сопоставляет файлы форм по имени. Binding matches form files by name. Например, значение HTML name в должно соответствовать привязанному к C# параметру или свойству ( FormFile ). For example, the HTML name value in must match the C# parameter/property bound ( FormFile ). Дополнительные сведения см. в разделе Сопоставление значения атрибута имени и имени параметра метода POST. For more information, see the Match name attribute value to parameter name of POST method section.

В следующем примере происходит следующее: The following example:

  • Циклично отправляет один или несколько передаваемых файлов. Loops through one or more uploaded files.
  • Использует метод Path.GetTempFileName, чтобы вернуть полный путь к файлу, включая его имя. Uses Path.GetTempFileName to return a full path for a file, including the file name.
  • Сохраняет файлы в локальную файловую систему, используя имя файла, созданное приложением. Saves the files to the local file system using a file name generated by the app.
  • Возвращает общее число и размер отправленных файлов. Returns the total number and size of files uploaded.

Чтобы создать имя файла без пути, используйте Path.GetRandomFileName . Use Path.GetRandomFileName to generate a file name without a path. В следующем примере путь получен из конфигурации: In the following example, the path is obtained from configuration:

Передаваемый в FileStream путь должен содержать имя файла. The path passed to the FileStream must include the file name. Если имя файла не указано, в среде выполнения возникает исключение UnauthorizedAccessException. If the file name isn’t provided, an UnauthorizedAccessException is thrown at runtime.

Файлы, передаваемые с помощью интерфейса IFormFile, буферизуются в памяти или на диске на сервере перед обработкой. Files uploaded using the IFormFile technique are buffered in memory or on disk on the server before processing. Внутри метода действия содержимое IFormFile доступно в виде Stream. Inside the action method, the IFormFile contents are accessible as a Stream. Помимо локальной файловой системы, файлы можно сохранять в сетевой папке или в службе хранилища файлов, например в хранилище BLOB-объектов Azure. In addition to the local file system, files can be saved to a network share or to a file storage service, such as Azure Blob storage.

Еще один пример, который перебирает несколько файлов для отправки и использует надежные имена файлов, см. в файле Pages/BufferedMultipleFileUploadPhysical.cshtml.cs в примере приложения. For another example that loops over multiple files for upload and uses safe file names, see Pages/BufferedMultipleFileUploadPhysical.cshtml.cs in the sample app.

Метод Path.GetTempFileName вызывает исключение IOException в случае создания более чем 65 535 файлов без удаления предыдущих временных файлов. Path.GetTempFileName throws an IOException if more than 65,535 files are created without deleting previous temporary files. Ограничение в 65 535 файлов предусмотрено для каждого сервера. The limit of 65,535 files is a per-server limit. Дополнительные сведения об этом ограничении в ОС Windows см. в примечаниях в следующих разделах: For more information on this limit on Windows OS, see the remarks in the following topics:

Передача небольших файлов с привязкой буферизованной модели к базе данных Upload small files with buffered model binding to a database

Для сохранения данных двоичных файлов в базе данных с помощью Entity Framework определите для сущности свойство массива Byte: To store binary file data in a database using Entity Framework, define a Byte array property on the entity:

Укажите свойство модели страницы для класса, который содержит IFormFile: Specify a page model property for the class that includes an IFormFile:

IFormFile можно использовать непосредственно как параметр метода действия или свойство модели привязки. IFormFile can be used directly as an action method parameter or as a bound model property. В предыдущем примере используется свойство модели привязки. The prior example uses a bound model property.

В форме Razor Pages используется FileUpload : The FileUpload is used in the Razor Pages form:

При публикации формы на сервере скопируйте IFormFile в поток и сохраните его в базе данных в виде массива байтов. When the form is POSTed to the server, copy the IFormFile to a stream and save it as a byte array in the database. В следующем примере _dbContext сохраняет контекст базы данных приложения: In the following example, _dbContext stores the app’s database context:

Предыдущий пример похож на сценарий, продемонстрированный в примере приложения: The preceding example is similar to a scenario demonstrated in the sample app:

  • Pages/BufferedSingleFileUploadDb.cshtml; Pages/BufferedSingleFileUploadDb.cshtml
  • Pages/BufferedSingleFileUploadDb.cshtml.cs. Pages/BufferedSingleFileUploadDb.cshtml.cs

При сохранении двоичных данных в реляционных базах данных следует соблюдать осторожность, так как это может отрицательно сказаться на производительности. Use caution when storing binary data in relational databases, as it can adversely impact performance.

Свойство FileName параметра IFormFile требует обязательной проверки. Don’t rely on or trust the FileName property of IFormFile without validation. Свойство FileName следует использовать только в целях вывода и только после HTML-кодирования. The FileName property should only be used for display purposes and only after HTML encoding.

В приведенных выше примерах не учитываются вопросы безопасности. The examples provided don’t take into account security considerations. Дополнительные сведения приведены в следующих разделах и в примере приложения. Additional information is provided by the following sections and the sample app:

Передача больших файлов с помощью потоковой передачи Upload large files with streaming

В приведенном ниже примере демонстрируется использование JavaScript для потоковой передачи файла в действие контроллера. The following example demonstrates how to use JavaScript to stream a file to a controller action. Токен против подделки файла создается с помощью пользовательского атрибута фильтра и передается в заголовках HTTP клиента, а не в теле запроса. The file’s antiforgery token is generated using a custom filter attribute and passed to the client HTTP headers instead of in the request body. Так как метод действия обрабатывает передаваемые данные напрямую, привязка модели формы отключается другим пользовательским фильтром. Because the action method processes the uploaded data directly, form model binding is disabled by another custom filter. Внутри действия содержимое формы считывается с помощью объекта MultipartReader , который считывает каждый объект MultipartSection по отдельности, обрабатывая файл или сохраняя содержимое. Within the action, the form’s contents are read using a MultipartReader , which reads each individual MultipartSection , processing the file or storing the contents as appropriate. После считывания составных разделов действие выполняет собственную привязку модели. After the multipart sections are read, the action performs its own model binding.

Вначале страница загружает форму и сохраняет токен против подделки в файле cookie (с помощью атрибута GenerateAntiforgeryTokenCookieAttribute ). The initial page response loads the form and saves an antiforgery token in a cookie (via the GenerateAntiforgeryTokenCookieAttribute attribute). Атрибут использует встроенную поддержку защиты от подделки в ASP.NET Core, чтобы задать файл cookie с токеном запроса. The attribute uses ASP.NET Core’s built-in antiforgery support to set a cookie with a request token:

Для отключения привязки модели используется DisableFormValueModelBindingAttribute : The DisableFormValueModelBindingAttribute is used to disable model binding:

Следующий пример аналогичен предыдущему примеру, за исключением следующего: The following example is analogous to the prior example except that:

  • JavaScript (Fetch API) используется для отправки данных формы. JavaScript’s (Fetch API) is used to submit the form’s data.
  • Проверка не выполняется. There’s no validation.

Для выполнения отправки формы в JavaScript для клиентов, которые не поддерживают Fetch API, используйте один из следующих подходов: To perform the form POST in JavaScript for clients that don’t support the Fetch API, use one of the following approaches:

Используйте функцию Fetch Polyfill (например, window.fetch polyfill (github/fetch)). Use a Fetch Polyfill (for example, window.fetch polyfill (github/fetch)).

Используйте ключевое слово XMLHttpRequest . Use XMLHttpRequest . Например: For example:

Для поддержки передачи файлов в HTML-формах должен указываться тип кодировки enctype со значением multipart/form-data . In order to support file uploads, HTML forms must specify an encoding type ( enctype ) of multipart/form-data .

Для элемента ввода files , поддерживающего отправку нескольких файлов, в элементе необходимо указать атрибут multiple : For a files input element to support uploading multiple files provide the multiple attribute on the element:

Доступ к отдельным файлам, переданным на сервер, можно получать посредством привязки модели с помощью интерфейса IFormFile. The individual files uploaded to the server can be accessed through Model Binding using IFormFile. В примере приложения показано несколько отправок буферизованных файлов для баз данных и физических хранилищ. The sample app demonstrates multiple buffered file uploads for database and physical storage scenarios.

Не используйте свойство FileName объекта IFormFile, кроме как для отображения и ведения журнала. Do not use the FileName property of IFormFile other than for display and logging. При отображении или ведении журнала кодируйте имя файла в формате HTML. When displaying or logging, HTML encode the file name. Злоумышленник может предоставить имя вредоносного файла, включая полные или относительные пути. An attacker can provide a malicious filename, including full paths or relative paths. Приложения должны: Applications should:

  • удалить путь из имени файла, указываемого пользователем; Remove the path from the user-supplied filename.
  • сохранить имя файла, закодированное в формате HTML, откуда был удален путь, для пользовательского интерфейса или ведения журнала. Save the HTML-encoded, path-removed filename for UI or logging.
  • создать случайное имя файла для хранения. Generate a new random filename for storage.

Следующий код удаляет путь из имени файла: The following code removes the path from the file name:

В приведенных выше примерах не учитываются вопросы безопасности. The examples provided thus far don’t take into account security considerations. Дополнительные сведения приведены в следующих разделах и в примере приложения. Additional information is provided by the following sections and the sample app:

При отправке файлов с помощью привязки модели и IFormFile метод действия может принимать следующие файлы: When uploading files using model binding and IFormFile, the action method can accept:

  • Один файл IFormFile. A single IFormFile.
  • Любая из следующих коллекций, представляющих несколько файлов: Any of the following collections that represent several files:
    • IFormFileCollection
    • IEnumerable
    • List . List

Привязка сопоставляет файлы форм по имени. Binding matches form files by name. Например, значение HTML name в должно соответствовать привязанному к C# параметру или свойству ( FormFile ). For example, the HTML name value in must match the C# parameter/property bound ( FormFile ). Дополнительные сведения см. в разделе Сопоставление значения атрибута имени и имени параметра метода POST. For more information, see the Match name attribute value to parameter name of POST method section.

В следующем примере происходит следующее: The following example:

  • Циклично отправляет один или несколько передаваемых файлов. Loops through one or more uploaded files.
  • Использует метод Path.GetTempFileName, чтобы вернуть полный путь к файлу, включая его имя. Uses Path.GetTempFileName to return a full path for a file, including the file name.
  • Сохраняет файлы в локальную файловую систему, используя имя файла, созданное приложением. Saves the files to the local file system using a file name generated by the app.
  • Возвращает общее число и размер отправленных файлов. Returns the total number and size of files uploaded.

Чтобы создать имя файла без пути, используйте Path.GetRandomFileName . Use Path.GetRandomFileName to generate a file name without a path. В следующем примере путь получен из конфигурации: In the following example, the path is obtained from configuration:

Передаваемый в FileStream путь должен содержать имя файла. The path passed to the FileStream must include the file name. Если имя файла не указано, в среде выполнения возникает исключение UnauthorizedAccessException. If the file name isn’t provided, an UnauthorizedAccessException is thrown at runtime.

Файлы, передаваемые с помощью интерфейса IFormFile, буферизуются в памяти или на диске на сервере перед обработкой. Files uploaded using the IFormFile technique are buffered in memory or on disk on the server before processing. Внутри метода действия содержимое IFormFile доступно в виде Stream. Inside the action method, the IFormFile contents are accessible as a Stream. Помимо локальной файловой системы, файлы можно сохранять в сетевой папке или в службе хранилища файлов, например в хранилище BLOB-объектов Azure. In addition to the local file system, files can be saved to a network share or to a file storage service, such as Azure Blob storage.

Еще один пример, который перебирает несколько файлов для отправки и использует надежные имена файлов, см. в файле Pages/BufferedMultipleFileUploadPhysical.cshtml.cs в примере приложения. For another example that loops over multiple files for upload and uses safe file names, see Pages/BufferedMultipleFileUploadPhysical.cshtml.cs in the sample app.

Метод Path.GetTempFileName вызывает исключение IOException в случае создания более чем 65 535 файлов без удаления предыдущих временных файлов. Path.GetTempFileName throws an IOException if more than 65,535 files are created without deleting previous temporary files. Ограничение в 65 535 файлов предусмотрено для каждого сервера. The limit of 65,535 files is a per-server limit. Дополнительные сведения об этом ограничении в ОС Windows см. в примечаниях в следующих разделах: For more information on this limit on Windows OS, see the remarks in the following topics:

Передача небольших файлов с привязкой буферизованной модели к базе данных Upload small files with buffered model binding to a database

Для сохранения данных двоичных файлов в базе данных с помощью Entity Framework определите для сущности свойство массива Byte: To store binary file data in a database using Entity Framework, define a Byte array property on the entity:

Укажите свойство модели страницы для класса, который содержит IFormFile: Specify a page model property for the class that includes an IFormFile:

IFormFile можно использовать непосредственно как параметр метода действия или свойство модели привязки. IFormFile can be used directly as an action method parameter or as a bound model property. В предыдущем примере используется свойство модели привязки. The prior example uses a bound model property.

В форме Razor Pages используется FileUpload : The FileUpload is used in the Razor Pages form:

При публикации формы на сервере скопируйте IFormFile в поток и сохраните его в базе данных в виде массива байтов. When the form is POSTed to the server, copy the IFormFile to a stream and save it as a byte array in the database. В следующем примере _dbContext сохраняет контекст базы данных приложения: In the following example, _dbContext stores the app’s database context:

Предыдущий пример похож на сценарий, продемонстрированный в примере приложения: The preceding example is similar to a scenario demonstrated in the sample app:

  • Pages/BufferedSingleFileUploadDb.cshtml; Pages/BufferedSingleFileUploadDb.cshtml
  • Pages/BufferedSingleFileUploadDb.cshtml.cs. Pages/BufferedSingleFileUploadDb.cshtml.cs

При сохранении двоичных данных в реляционных базах данных следует соблюдать осторожность, так как это может отрицательно сказаться на производительности. Use caution when storing binary data in relational databases, as it can adversely impact performance.

Свойство FileName параметра IFormFile требует обязательной проверки. Don’t rely on or trust the FileName property of IFormFile without validation. Свойство FileName следует использовать только в целях вывода и только после HTML-кодирования. The FileName property should only be used for display purposes and only after HTML encoding.

В приведенных выше примерах не учитываются вопросы безопасности. The examples provided don’t take into account security considerations. Дополнительные сведения приведены в следующих разделах и в примере приложения. Additional information is provided by the following sections and the sample app:

Передача больших файлов с помощью потоковой передачи Upload large files with streaming

В приведенном ниже примере демонстрируется использование JavaScript для потоковой передачи файла в действие контроллера. The following example demonstrates how to use JavaScript to stream a file to a controller action. Токен против подделки файла создается с помощью пользовательского атрибута фильтра и передается в заголовках HTTP клиента, а не в теле запроса. The file’s antiforgery token is generated using a custom filter attribute and passed to the client HTTP headers instead of in the request body. Так как метод действия обрабатывает передаваемые данные напрямую, привязка модели формы отключается другим пользовательским фильтром. Because the action method processes the uploaded data directly, form model binding is disabled by another custom filter. Внутри действия содержимое формы считывается с помощью объекта MultipartReader , который считывает каждый объект MultipartSection по отдельности, обрабатывая файл или сохраняя содержимое. Within the action, the form’s contents are read using a MultipartReader , which reads each individual MultipartSection , processing the file or storing the contents as appropriate. После считывания составных разделов действие выполняет собственную привязку модели. After the multipart sections are read, the action performs its own model binding.

Вначале страница загружает форму и сохраняет токен против подделки в файле cookie (с помощью атрибута GenerateAntiforgeryTokenCookieAttribute ). The initial page response loads the form and saves an antiforgery token in a cookie (via the GenerateAntiforgeryTokenCookieAttribute attribute). Атрибут использует встроенную поддержку защиты от подделки в ASP.NET Core, чтобы задать файл cookie с токеном запроса. The attribute uses ASP.NET Core’s built-in antiforgery support to set a cookie with a request token:

Для отключения привязки модели используется DisableFormValueModelBindingAttribute : The DisableFormValueModelBindingAttribute is used to disable model binding:

Илон Маск рекомендует:  Continue - Процедура Delphi
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL