Bazı projelerde ziyaretçiye download yapabilmesi için siteye giriş yapması gerekebilir.
Örneğin online yazılım satışı yapan bir sitede sadece ücreti ödeyen ziyaretçilerin download hakkı olmalıdır. Bunun yanında download ettiği dosyanın yoluna bakıp satın almadığı başka dosyaları alabilme şansı olmamalıdır. Bu durumda download işleminin güvenliğini directory security gibi klasik yollarla değil , ASP ile programlama yaparak çözebiliriz.Aşağıdaki örnekte “files” klasöründeki dosya.zip dosyası ASP ile bir değişkene atılıp browser’ a gönderilmektedir. Bu nedenle kullanıcı dosya yolunu göremeyecektir. Ayrıca dosyaları site root’ unun dışına koyarak yazdığımız ASP dışında bir yolla indirilmesini tamamen de engelleyebiliriz.
<%@language=”vbscript”%>
<%
dim stream
dim content
dim filename
dim saveas

saveas=”dosya.zip”
filename = “files/dosya.zip”
filename=server.mappath(filename)

response.contenttype = “application/x-msdownload”
response.addheader “content-transfer-encoding”, “binary”
response.addheader “content-disposition”, “attachment;filename=”& saveas

set stream = server.createobject(”adodb.stream”)

stream.mode = 3
stream.open

stream.loadfromfile filename
content=stream.readtext(-1)
response.binarywrite(content)

stream.close

set stream=nothing
content=null
%>
Eğer dosyamızı download şeklinde değil de stream ederek göndermek istiyorsak

response.contenttype = “application/x-msdownload”
response.addheader “content-transfer-encoding”, “binary”
response.addheader “content-disposition”, “attachment;filename=”& saveas

satırlarını

response.contenttype = “application/octet-stream”
response.addheader “content-disposition”, “attachment;filename=”& saveas
satırlarıyla değiştirmeniz yeterli olacaktır.

Tabi ki stream etme olayını bir zip dosyası değil de media türü dosyalarda kullanmamız mantıklı olacaktır.

Bu arada dikkat etmemiz gereken bir nokta var. ASP dosya içeriğini bir değişkene atıp sunucunun belleğinden browser’ a gönderdiği için microsoft.com’ da olduğu gibi download sayısını sunucumuzun kapasitesine göre sınırlandırmalıyız.

Favorilerinize Ekleyin.
  • BlinkList
  • del.icio.us
  • Digg
  • Netvouz
  • DZone
  • ThisNext
  • MisterWong
  • Wists
  • blogmarks
  • Furl
  • Netscape
  • NewsVine
  • Reddit
  • Shadows
  • Technorati
  • YahooMyWeb
  • Fark
  • feedmelinks
  • Fleck
  • kick.ie
  • LinkaGoGo
  • Linkter
  • MyShare
  • Spurl
  • Webride