Вы когда-нибудь были разочарованы, когда заходите на веб-сайт, когда есть документы, изображения и другой контент, доступный для скачивания, и вы хотите сделать это, загрузите его! Вместо этого, когда вы нажимаете на элемент контента, он продолжает открываться в вашем браузере. Я столкнулся с этой проблемой во время проекта для медицинской компании, и им нужно было загружать и не открывать свои PDF-файлы. Ну, есть способ заставить его открыть диалоговое окно Сохранить как.

В этом руководстве мы будем предполагать, что файлы хранятся локально на сервере, а не в базе данных. (Это совсем другое обсуждение)

Во-первых, вам нужно знать местоположение ваших файлов. Итак, давайте предположим, что ваши файлы находятся по адресу //yourserver.com/files/filename.ext. Предположим, что Server.MapPath - это «/ files».

Итак, на данный момент, давайте создадим файл ASP, который будет контролировать загрузку файла. Начните с создания нового пустого документа с помощью Блокнота или вашего любимого редактора HTML. Поместите следующий код ASP:

<%
'=======================
'Define the names of your functions
'=======================
Dim Stream
Dim Contents
Dim FileName
Dim FileExt
Const adTypeBinary = 1
'=======================
'Get the actual file name from the URL that is passed to the browser
'=======================
FileName = request.querystring("filename") 'Get the name from the URL
'=======================
'GIVE AN ERROR MESSAGE IF THE URL IS EMPTY
'=======================
if FileName = "" Then
response.write "Filename Not specified."
response.end
end if
'=======================
'prevent access to certain files
'=======================
FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
select case UCase(FileExt)
Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
response.write "You cannot access these file types."
response.end
end select
'=======================
'Start the download process if all is good
'=======================
response.clear
response.contentType = "application/octet-stream"
response.addheader "content-disposition", "attachment; filename=" & FileName
set stream = server.CreateObject("ADODB.Stream")
stream.type = adTypeBinary
stream.open
stream.LoadFromFile Server.MapPath("/files") & FileName
while not stream.EOS
response.BinaryWrite Stream.Read(1024 * 64)
wend
stream.Close
Set stream = Nothing
response.Flush
response.End
%>


Вот и все. Теперь сохраните и загрузите этот файл на свой сервер и назовите его filedownloader.asp

Теперь допустим, что имя файла на вашем сервере - familytree.pdf

Затем вы просто передадите следующий URL в вашем браузере, и появится диалоговое окно File Save as Open.

//yourserver.com/filedownloader.asp?filename=familytree.pdf

Вот и все! Вы должны увидеть это:



Удачи, и вы можете улучшить это, используя базы данных и другие интересные функции, чтобы убедиться, что файлы, к которым у ваших пользователей есть доступ, имеют возможность загружаться и не открываться в их текущем веб-браузере, что позволяет им «оставаться» на вашем сайте. ,

Видео инструкция: Why do big Companies use Java, and NOT PHP? (May 2024).