Исходная работа: возможно_Y, загруженная из Times Classroom.
Введите URL-адрес файла doc, xls или jpg напрямую в адресную строку браузера, и файл отобразится прямо в браузере. Во многих случаях мы надеемся, что у пользователей появится всплывающее окно с запросом на загрузку. Что нам делать? Здесь есть два метода:
1. Настройте iis вашего сервера и суффиксы карты, например doc.
2. Установите тип содержимого при отправке клиенту.
Метод 2 подробно описан ниже
<%.
Response.Buffer = правда
Ответ.Очистить
тусклый URL
Тусклый fso, fl, flsize
dimDname
Dim objStream, ContentType, flName, isre, url1
'****************************************** передается при вызове файла загрузки имя
Dname=trim(запрос("n"))
'********************************************** ****************
Если Dname<>"" Тогда
'******************************Каталог сервера, где хранятся загруженные файлы
url=server.MapPath("/")&""&Dname
'********************************************** *
End If
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Установите fl=fso.getfile(url)
flsize=fl.size
flName=fl.name
Установить fl=Ничего
Установить fso=Ничего
%>
<%
Установите objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
URL-адрес objStream.LoadFromFile
Выберите регистр lcase(Right(flName, 4))
Дело ".asf"
ContentType = "видео/x-ms-asf"
Дело ".avi"
Тип контента = "видео/avi"
Дело ".doc"
ContentType = "приложение/мсворд"
Дело ".zip"
ContentType = "приложение/zip"
Дело ".xls"
ContentType = "приложение/vnd.ms-excel"
Дело ".gif"
ContentType = "изображение/гиф"
Случай ".jpg", "jpeg"
ТипСодержимого = "изображение/jpeg"
Случай ".wav"
ContentType = "аудио/wav"
Дело ".mp3"
КонтентТип = "аудио/mpeg3"
Случай ".mpg", "mpeg"
ContentType = "видео/mpeg"
Дело ".rtf"
ContentType = "приложение/rtf"
Случай ".htm", "html"
КонтентТип = "текст/html"
Дело ".txt"
ContentType = "текст/обычный"
Другое дело
ContentType = "приложение/октет-поток"
Конец выбора
Response.AddHeader "Content-Disposition", "attachment; filename=" & flName
Response.AddHeader "Content-Length", flsize
Response.Charset = "UTF-8"
Response.ContentType = ContentType
Response.BinaryWrite objStream.Read
Ответ.Flush
ответ.Очистить()
objStream.Close
Set objStream = Nothing
%>
Сохраните следующее в download.asp, а затем вы сможете использовать <a herf=" http://www.downcodes.com/download.asp?n=file.doc">download!</a > Загружать файл.doc в тот же каталог!
Но здесь есть проблема: небезопасно прописывать путь к файлу.doc непосредственно в URL-адресе, поэтому решением должно быть сохранение пути к файлу.doc в базе данных. в базе данных, вы можете получить путь.
Если вы добавите решение в начале этой программы:
if instr(Request.ServerVariables("HTTP_REFERER"),"http://ваше доменное имя")=0 тогда
Ответ.Конец
end if
вполне может предотвратить кражу ссылок другими.