Что делать, если вы хотите разместить изображения или файлы с вашего компьютера на сервере? Есть три варианта: 1. Загрузка по FTP, 2. Использование USB-накопителя для копирования на сервер, 3. Если сервер поддерживает? Функция загрузки ASP, использование веб-страницы. Браузер загружает файл на сервер.
Сегодня мы объясним, как использовать функцию загрузки asp для загрузки локальных файлов на сервер.
Простейшая система включает следующие три файла:
upload.htm --Загрузить файл порта, выбрать локальный файл uploadimg.asp --Загрузить управляющий файл программы upload_5xsoft.inc --Нет класса загрузки компонентов, новичкам не нужно изучать этот файл, если они могут его использовать
upload.htm content — загрузить файл порта, выбрать локальный файл.
- <html>
- <голова>
- </голова>
- <тело>
- <tablewidth=80%border=0align=center>
- <formname=form1method=postaction=uploadimg.aspenctype=multipart/form-data>
- <тр>
- <tdalign=center><inputname=upfiletype=fileid=upfile></td>
- </tr>
- <тр>
- <tdalign=center><inputtype=submitname=Submitvalue=Загрузить изображения></td>
- </tr>
- </форма>
- </таблица>
- </тело>
- </html>
uploadimg.asp content — загрузить управляющий файл программы.
- <!--#includeFILE=upload_5xsoft.inc-->
- <%
- dimupload, файл, путь к файлу
- путь к файлу = ЗАГРУЗИТЬ/
- setupload=newupload_5xSoft''Создать объект загрузки
- foreachformNameinupload.file'' перечисляет все загруженные файлы
- setfile=upload.file(formName)'' генерирует файловый объект
- iffile.FileSize>0then''Если FileSize>0, это означает, что есть данные файла
- fname=file.имя_файла
- file.SaveAsServer.mappath(filepath&fname)''Сохранить файл
- конец
- setfile=ничего
- следующий
- setupload=nothing''Удалить этот объект
Содержимое upload_5xsoft.inc
--Содержимое этого файла не принадлежит содержимому этого детализации. В этом детализации применяется этот метод.
- <SCRIPTRUNAT=SERVERLANGUAGE=VBSCRIPT>
- dimoUpFileStream
- Classupload_5xSoft
- dimForm, Файл, Версия
- PrivateSubClass_Initialize
- dimRequestBinDate, sStart, bCrLf, sInfo, iInfoStart, iInfoEnd, tStream, iStart, oFileInfo
- dimiFileSize, sFilePath, sFileType, sFormvalue, sFileName
- димифиндстарт, iFindEnd
- dimiFormStart, iFormEnd, sFormName
- Версия = Нет класса загрузки компонентов Версия 0.93
- setForm=Server.CreateObject(Scripting.Dictionary)
- setFile=Server.CreateObject(Scripting.Dictionary)
- ifRequest.TotalBytes<1thenExitSub
- settStream=Server.CreateObject(adodb.stream)
- setoUpFileStream=Server.CreateObject(adodb.stream)
- oUpFileStream.Type=1
- oUpFileStream.Mode=3
- oUpFileStream.Open
- oUpFileStream.WriteRequest.BinaryRead(Request.TotalBytes)
- Response.Write<fontsize=2>Время выполнения страницы: &FormatNumber((Timer()-time1)*1000,3)&миллисекунды</font><br>
- oUpFileStream.Position=0
- RequestBinDate=oUpFileStream.Read
- iFormStart=1
- iFormEnd=LenB (RequestBinDate)
- бКрЛф=хрБ(13)&хрБ(10)
- sStart=MidB(RequestBinDate,1,InStrB(iFormStart,RequestBinDate,bCrLf)-1)
- iStart=LenB(sStart)
- iFormStart=iFormStart+iStart+1
- while(iFormStart+10)<iFormEnd
- iInfoEnd=InStrB(iFormStart,RequestBinDate,bCrLf&bCrLf)+3
- tStream.Type=1
- tStream.Mode=3
- tStream.Open
- oUpFileStream.Position=iFormStart
- oUpFileStream.CopyTotStream,iInfoEnd-iFormStart
- tStream.Position=0
- tStream.Type=2
- tStream.Charset=gb2312
- sInfo=tStream.ReadText
- 'Получаем имя элемента формы
- iFormStart = InStrB (iInfoEnd, RequestBinDate, sStart)
- iFindStart=InStr(22,sInfo,name=,1)+6
- iFindEnd=InStr(iFindStart,sInfo,,1)
- sFormName=Mid(sinfo,iFindStart,iFindEnd-iFindStart)
- 'Если это файл
- еслиInStr(45,sInfo,filename=,1)>0то
- setoFileInfo=newFileInfo
- 'Получаем имя файла
- iFindStart=InStr(iFindEnd,sInfo,filename=,1)+10
- iFindEnd=InStr(iFindStart,sInfo,,1)
- sFileName=Mid(sinfo,iFindStart,iFindEnd-iFindStart)
- oFileInfo.FileName=getFileName(sFileName)
- oFileInfo.FilePath=getFilePath(sFileName)
- 'Получить тип файла
- iFindStart=InStr(iFindEnd,sInfo,Content-Type:,1)+14
- iFindEnd=InStr(iFindStart,sInfo,vbCr)
- oFileInfo.FileType=Mid(sinfo,iFindStart,iFindEnd-iFindStart)
- oFileInfo.FileStart=iInfoEnd
- oFileInfo.FileSize=iFormStart-iInfoEnd-3
- oFileInfo.FormName=sFormName
- file.addsFormName, oFileInfo
- еще
- 'Если это элемент формы
- tStream.Close
- tStream.Type=1
- tStream.Mode=3
- tStream.Open
- oUpFileStream.Position=iInfoEnd
- oUpFileStream.CopyTotStream,iFormStart-iInfoEnd-3
- tStream.Position=0
- tStream.Type=2
- tStream.Charset=gb2312
- sFormvalue=tStream.ReadText
- form.AddsFormName,sFormvalue
- конец
- tStream.Close
- iFormStart=iFormStart+iStart+1
- идти
- RequestBinDate=
- setStream = ничего
- EndSub
- PrivateSubClass_Terminate
- ifnotRequest.TotalBytes<1тогда
- форма.RemoveAll
- файл.RemoveAll
- setform=ничего
- setfile=ничего
- oUpFileStream.Close
- setoUpFileStream=ничего
- конец
- EndSub
- Частная функцияGetFilePath(FullPath)
- ЕслиПолныйПуть<>Тогда
- GetFilePath = влево (FullPath, InStrRev (FullPath,))
- Еще
- GetFilePath=
- КонецЕсли
- Конечная функция
- Частная функцияGetFileName(FullPath)
- ЕслиПолныйПуть<>Тогда
- GetFileName=mid(FullPath,InStrRev(FullPath,)+1)
- Еще
- ПолучитьИмяФайла=
- КонецЕсли
- Конечная функция
- Конечныйкласс
- Классфилеинфо
- dimFormName, FileName, FilePath, FileSize, FileType, FileStart
- PrivateSubClass_Initialize
- ИмяФайла=
- FilePath=
- РазмерФайла=0
- ФилеСтарт=0
- ИмяФормы=
- ТипФайла=
- EndSub
- Публичная функцияSaveAs (FullPath)
- dimoFileStream, ErrorChar, я
- Сохранить как=1
- iftrim(fullpath)=orright(fullpath,1)=/thenexitfunction
- setoFileStream=CreateObject(Adodb.Stream)
- oFileStream.Type=1
- oFileStream.Mode=3
- oFileStream.Open
- oUpFileStream.position=Начало файла
- oUpFileStream.copytooFileStream, FileSize
- oFileStream.SaveToFileFullPath, 2
- oFileStream.Close
- setoFileStream = ничего
- СохранитьКак=0
- конечная функция
- Конечныйкласс
- </СКРИПТ>
В этой статье описывается простейшая программа для загрузки файлов. Друзья, пожалуйста, проанализируйте ее самостоятельно. Изучив это упражнение, вы в основном освоите общую функцию загрузки ASP.