Когда мы работаем над веб-проектами, нам часто необходимо использовать функцию загрузки файлов, но загрузка различных типов файлов в среду приложений на основе браузера/сервера всегда вызывала беспокойство пользователей. Итак, какой метод ASP загружать файлы?
один. Анализ принципа реализации загрузки файлов на основе ASP
Основной принцип: используйте метод BinaryRead объекта ADO Stream, чтобы прочитать все данные в форме, перехватить требуемые данные файла и сохранить его в двоичных файлах.
Вот пример страницы файла загрузки (upload.htm):
< Html >< Body >< Form name = "upload" method = "post" enctype = "multiply/form-data" action = "upload.asp"> < input type = "file" name = "filename"> < ввод типа = "vade =" upload "> </td> </form> < Body> </html>
Файл -объект используется в программе, так что исходные данные считываются с помощью метода BinaryRead в upload.asp, являются не только данных самого выбранного файла, но также содержит описания пути, типа, имени домена формы страницы отправки и другой связанной информации на жестком диске пользователя. Таким образом, нам нужно извлечь из него конкретное содержание файла. Согласно анализу, разделительная линия между информацией заголовка данных и данными представляет собой две пары разрывов обратной линии перевозки, а в конце также существует отдельная информация. Мы можем использовать аналогичный метод для получения данных файла.
Dim formData.formSize, DataStart, ClStr, DivStrformSize = request.TotalBytesformData = request.binaryRead (formize) clstr = chrb (13) и chrb (10) dataStart = instrb (formdata.clstr & clstr)+4'4 Divstr = левый (formData, instrb (formData, clstr) -1) dataSize = instrb (dataStart+1, formData, divstr) -datastart-2formdata = midb (formData, dataStart, dataSize) FormData-это содержание файла.
Соответствующее лечение может быть выполнено по мере необходимости в середине. Последняя задача - сохранить файл. Существует два способа сохранения: один из них - использовать методы работы двоичных файлов в таких программах, как VB или VC, добавить соответствующие библиотеки типа в проект и, наконец, составить его в файл DLL, и зарегистрируйте файл DLL при его использовании. Программа хранения файлов заключается в следующем:
Public Function SaveFile(Pathname As String) As String Dim objContext As ObjectContext Dim objRequest As Request Set objContext=GetObjectContext() Set objRequest=objContext("Request") 'The following piece of code is a related operation for file storage Dim FormData() As Byte,CLStr,DivStr Dim DataStart As Long,DataSize As Long DataSize=objRequest.TotalBytes Redim formData (dataSize-1) formData = objRequest.binaryRead (dataSize) clSt = chrb (13) и chrb (10) dataStart = instrb (formData, clstr & clstr) +4 divstr = левая (formdata, instrb (formdata, clstr) -1) dataSize = instrb (dataStart+1, formData, divstraTaRtaRta, formData, divdata, divdata, divdata, divdata, divdata, divdata, divdata. FormData = midb (formData, dataStart, dataSize) 'Создайте двоичный файл и записи FormData, чтобы открыть PathName для Binary As 1 PUT #1 ,, FormData Close #1 SaveFile = "ok!" Конечная функцияВторой метод состоит в том, чтобы использовать метод работы бинарного файла, предоставленный в ADO -потоке для его завершения. Заявление для сохранения файла: StreamObj.SavetOfile (имя файла, 2). В такой операции мы можем сохранить соответствующие операции в файле класса. При подаче заявки просто включите файл класса в программу ASP. Для конкретных методов обработки, пожалуйста, обратитесь к соответствующему введению.
два. Пример реализации файла загрузка
Для реализации загрузки файлов вы можете использовать компоненты или методы без компонентов. Для классов компонентов, таких как акцептор Microsoft Propling (MPA для краткости), это бесплатный серверный компонент, выпущенный Microsoft. Установка таких компонентов также более удобна. Для MPA Microsoft просто запустите его файлы установки. Для общей формы компонента DLL нам нужно зарегистрироваться. Например, чтобы использовать aspcnup.dll, просто выполнить regsvr32 [path/] aspcnup.dll в Window 2000, и система побуждает, что регистрация успешна, вы можете использовать этот компонент; Для класса без компонентов при его использовании просто включите следующие операторы в обработчике:
<!-#include file = "upload.inc"-> set upload = new upload_5xsoft 'создать объект загрузки
Для свойств и методов работы, пожалуйста, обратитесь к руководству пользователя этого компонента.
Ниже приведен исходный код (upload.asp) для загрузки некоторых типов файлов с использованием компонента aspcnup.dll в качестве примера:
<% @ language = "vbscript" set fileup = server.createObject ("aspcn.upload") fileup.maxsize = 200000 fileup.path = "d:/upfile" fileup.upload для i = 0 to fileup.count fieldname = fileup.fieldname (i) if fileup.filetype (fieldname) " ileup.filetype (fieldname) = "rar", то fileup.save fieldname end, если следующее установлено файл leailup = ничего%>Модель приложения браузера/сервера все еще быстро развивается. В недавно запущенной Microsoft ASP.NET была встроена функция загрузки файлов, что делает ее очень простым и удобным в использовании. Как совершенно новая технология, ASP.NET - это не просто простое обновление ASP. Это совершенно новая структура для веб -разработки, которая содержит много новых функций. ASP.NET предоставляет более проще для написания и более четкой структуры, и мы сможем более легко использовать и делиться тем самым, разрабатывая более практические программы.
Выше всего содержание этой статьи. Я надеюсь, что содержание этой статьи поможет всем, кто учится или работа. Я также надеюсь поддержать неправильный новый канал технологии!