View Full Version : تگ پنجره دانلود
Asad.Safari
سه شنبه 12 اردیبهشت 1385, 11:23 صبح
باسلام
من تو سایتم فایل pdf (ebook) دارم!
وقتی به این pdf لینک میدم , اگه کاربر رو کامپیوترش adobe reader داشته باشه
این pdf تو صفحه با adobe reader باز میشه !
اگه هم نداشته بشه واسش دانلود میشه!
من میخام حتی اگه کاربر Adobe reader هم داشت براش دانلود بشه!
یعنی اون پنجره دانلود(download Dialog) براش باز بشه و اول دانلود کنه و بعد از روی کامپیوتر خودش اون فایل رو اجرا کنه !
با تشکر
tabib_m
سه شنبه 12 اردیبهشت 1385, 13:15 عصر
خوب فایلهات رو زیپ کن
archangel
سه شنبه 12 اردیبهشت 1385, 18:21 عصر
باید از http headers استفاده کنی. البته من راهش رو دقیقاً یادم نمیآید. باید رو هاردمو بگردم کُدشو پیدا کنم). ولی میشه از این طریق مرورگر را مجبور به دانلود کرد (به جای این که فایل رو چک کنه تا اگه بتونه نمایش بده).
Asad.Safari
سه شنبه 12 اردیبهشت 1385, 21:30 عصر
خوب فایلهات رو زیپ کن
ما همیشه عادت داریم که دنبال مسکن بگردیم و نه درمان دائمی!
باید از http headers استفاده کنی. البته من راهش رو دقیقاً یادم نمیآید. باید رو هاردمو بگردم کُدشو پیدا کنم). ولی میشه از این طریق مرورگر را مجبور به دانلود کرد (به جای این که فایل رو چک کنه تا اگه بتونه نمایش بده).
ممنون میشم اگه پیدا کنی!
من شنیده بودم که این یه تگ داره
و فکر کنم تو جاوا اسکریپت بشه پیداش کرد!
با تشکر
archangel
سه شنبه 12 اردیبهشت 1385, 22:07 عصر
این یه نمونه کد ASP یه برای ارسال یه فایل از روی سرویسدهنده به سمت مرورگر و مرورگر رو مجبور به دانلود میکنه.
<% @Language=VBScript %>
<% Option Explicit %>
<!-- METADATA TYPE="typelib" NAME="ADODB Type Library"
UUID="00000205-0000-0010-8000-00AA006D2EA4" -->
<%
Dim fileName, filePath, mimeType
fileName = Request.QueryString("name")
filePath = Request.QueryString("path")
mimeType = Request.QueryString("type")
If Len(mimeType) = 0 Then
mimeType = "application/octet-stream"
End If
'
Dim adoStream, stream
Set adoStream = Server.CreateObject("ADODB.Stream")
adoStream.Open()
adoStream.Type = adTypeBinary
adoStream.LoadFromFile Server.MapPath(filePath & fileName)
If adoStream.Type = adTypeBinary Then
stream = adoStream.Read()
Else
stream = adoStream.ReadText()
End If
adoStream.Close()
Set adoStream = Nothing
'
Response.Buffer = True
Response.AddHeader "content-disposition", "attachment;filename=" & fileName
Response.AddHeader "content-length", Len(stream)
Response.ContentType = mimeType
Response.BinaryWrite stream
Response.Flush
%>
همون طوری که میبینی از http header استفاده کرده. تو اینترنت میتونی همچین چیزایی رو پیدا کنی. از این keyword استفاده کن:
force download
how to force a download
razaghi
دوشنبه 09 مرداد 1385, 08:28 صبح
سلام
من این کد رو امتحان کردم ولی برای فایلهای با حجم بالای 1 مگ خطا می دهد. راه حلی برای آن دارید؟
ممنون
javad_hosseiny
دوشنبه 09 مرداد 1385, 09:08 صبح
اگه با php مشکلی ندارید می تونید از لینک ذیل استفاده کنید
http://www.barnamenevis.org/forum/showthread.php?t=48653
با قابلیت امکان فشرده سازی اطلاعات به هنگام دان لود (وحتی دان لود خود فایلهای html)
zrahimic
دوشنبه 09 مرداد 1385, 09:31 صبح
با ASP کار می کنم و کد فوق برای فایلهای بالاتر از 1MG مشکل دارد
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.