один. Анализ принципа реализации загрузки файлов на основе 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. Для конкретных методов обработки, пожалуйста, обратитесь к соответствующему введению.