|
|
|
Загрузка файлов на сервер по HTTP
| |
|
В качестве инструмента для загрузки файлов на сервер (Upload) применен
конпонент clsUpload, который установлен на серверах хостинга. В случае
необходимости,
Вы можете получить его исходный код по
этой ссылке. Доступен clsUpload через ссылку
<domain_name>/common/Upload/clsUpload.asp
Пример использования
Запрос файла :
<H1>File Upload</H1>
<FORM method="post" encType="multipart/form-data"
action="UpFile.asp">
<INPUT type="File" name="File1">
<INPUT type="Submit" value="Upload">
</FORM>
В UpFile.asp принимаем и записываем файл :
<!--#INCLUDE virtual="/common/upload/clsUpload.asp"-->
<%
Dim objUpload
Dim strFileName
Dim strPath
' Instantiate Upload Class
Set objUpload = New clsUpload
' Grab the file name
strFileName = objUpload.Fields("File1").FileName
' Compile path to save file to
strPath = Server.MapPath("/source/Data") & "\" &
strFileName
' Save the binary data to the file system
objUpload("File1").SaveAs strPath
' Release upload object from memory
Set objUpload = Nothing
%>
Реализация ASP не позволяет использовать WSC компоненты в
Java script прямым образом и по этому нужно применить
совмещение 2-х видов скриптов для того чтобы использовать
данный компонент в JScript. Например так :
<!--#INCLUDE virtual="/common/upload/clsUpload.asp"-->
<script language="VBScript" RUNAT="SERVER">
Function UpFile ( strPath1 )
Dim objUpload
Dim strFileName
Dim strPath
Set objUpload = New clsUpload
strFileName = objUpload.Fields("File1").FileName
strPath = strPath1 & "\" & strFileName
objUpload("File1").SaveAs strPath
Set objUpload = Nothing
UpFile = strFileName
End function
</script>
После этого можно использовать функцию UpFile в JScript :
<SCRIPT LANGUAGE="JavaScript" RunAt="Server">
strFileName = UpFile( strPath ) ;
</SCRIPT>
Значения (properties) объекта clsUpload
.Count
Количество полей, полученных из формы
Например:
Response.Write "Форма передала " & objUpload.Count & " полей."
.Fields
Доступ к полям формы. Доступ может осуществляться по имени или
по номеру поля. Это метод "по умолчанию", т.е. если не указан
метод к объекту clsUpload, то подразумевается .Fields .
Например :
'Получение поля по имени
Set objField = objUpload.Fields("File1")
Set objField = objUpload("File1")
'Получение поля по номеру
Set objField = objUpload(0)
Set objField = objUpload.Fields(0)
'Получение последнего поля в форме
Set objField = objUpload.Fields(objUpload.Count-1)
Для полей формы доступны следующие методы и значения :
objField.Name
Имя поля, как оно определено в форме
objFiled.Filepath
Путь, откуда был прислан файл
Например: C:\Documents and Settings\lmoten\Desktop\Photo.gif
objField.FileDir
Каталог, откуда был прислан файл
Например: C:\Documents and Settings\lmoten\Desktop
objField.FileExt
расширение файла (заглавными буквами)
Например: GIF
objField.FileName
Имя файла
Например: Photo.gif
objField.ContentType
MIME тип данных пересылаемого файла
Например: image/gif
objField.Value
Unicode значение, пересылаемое из формы.
Это значение пустое если данные двоичные.
objField.BinaryData
Содержимое двоичных данных (Integer SubType Array)
objField.BLOB
Тоже самое, что и BinaryData, но с более коротким именем.
Предназначена для работы с базой данных.
objField.Length
Размер в байтах Value or BinaryData - в зависимости от типа
objField.BinaryAsText()
Преобразовывает двоичные данные в Unicode формат.
Применимо для того, чтобы пользователь мог работать с уже
загруженным файлом.
objField.SaveAs()
Сохраняет двоичные данные в указанный файл. Существующий файл будет
переписан.
|
|