PDA

View Full Version : مخفی کردن لینک مستقیم دانلود .



merlin_vista
دوشنبه 19 فروردین 1387, 18:26 عصر
با سلام :
فرض کنید مثلاًاین آدرس را داریم

http://www.websit.com/software/vs2008.zipحالا من این آدرس را میگیرم و در بانک اطلاعاتی ذخیره میکنم و آی دی آن را با کوئری استرینک به طرف میدم


http://www.websit.com/Download.aspx?id=1رکورد شماره 1 دربانک اطلاعاتی برابر با لینک دانلود میباشد

حالا در صفحه دانلود لینک دانلود را از بانک میخوانم و به آن ریدایرکت میکنم تا بشه دانلودش کرد

ولی مشکلی که هست لینک مستقیم دانلود مشخص میشود به هنگام دانلود
ما میخواهیم لینک اصلی دانلود مشخص نباشد و فقط آدرس دوم مشخص باشد یعنی این

http://www.websit.com/Download.aspx?id=1حتی دانلود منیجر ها هم آدرس اصلی را نشان ندهد ولی دانلود بشه

twelve
دوشنبه 19 فروردین 1387, 18:43 عصر
http://barnamenevis.org/forum/showthread.php?t=48457

twelve
دوشنبه 19 فروردین 1387, 18:58 عصر
فکر کنم این خود اون چیزی باشه که میخوای:
http://forums.asp.net/p/542979/542979.aspx

raravaice
دوشنبه 19 فروردین 1387, 19:31 عصر
Response.WriteFile()
Response.TransmitFile()

merlin_vista
سه شنبه 20 فروردین 1387, 00:15 صبح
دوستان برای چیزی که گفتم این کد را نوشتم :

string fName = "vs2008.zip";
string FilePath = "http://www.websit.com/software/" + fName.ToString();
Response.ContentType = "Application/x-msdownload";
Response.AppendHeader("content-disposition", "attachment; filename=" + fName);
Response.WriteFile(FilePath);
Response.End();

ولی این خطا را گرفت :

is not a valid virtual path.

باید یاداوری کنم که فایل در یک سرور دیگه و یک سرور لینوکس میباشد .

raravaice
سه شنبه 20 فروردین 1387, 10:48 صبح
سلام

مسیر باید مسیر فیزیکی هارد باشه نه url.

شما اگر میخوای این عمل رو انجام بدی یعنی از url دیگه ای فایل رو برای کاربر بفرستی باید از webrequest فایل رو دانلور و عینا برای کاربر outputstream کنی که یه کم پیچیدست.

موفق باشید

merlin_vista
سه شنبه 20 فروردین 1387, 19:12 عصر
یعنی منظور شما اینه که فایل را دانلود کنم رو سرور خودم و بعد با کاربر outputstream آن را برای دانلود به کاربر بدهم !!!!

raravaice
سه شنبه 20 فروردین 1387, 19:19 عصر
آره اینجوری میشه و هم میشه همزمان سازی کرد یعنی اینکه دیتایی که داره برای شما ارسال میشه عینا برای کاربر بفرستی یعنی یه جورایی نقش رابط رو بازی کنی تا لازم نباشه فایل رو جایی ذخیره کنی.

البته تمام موارد بالا در صورتی که فایل خارج از سایت شما باشه وگرنه با همون مسیر فیزیکی هار به راحتی این کار انجام میشه.

موفق باشید

explod_javad
پنج شنبه 14 شهریور 1387, 22:40 عصر
با سلام به همه دوستان
این هم یه کد دیگه از دانلود هوشمند.
http://www.30sharp.com/ShowArticle.aspx?nid=2&did=8&AuthorID=1
کسی هست که بگه چطور میشه موقع دانلود فایل اسمشو تغییر داد

Behrouz_Rad
پنج شنبه 14 شهریور 1387, 22:57 عصر
کافیه به هدر Content-Disposition مقدار بدی:


Response.AddHeader("Content-Disposition", "attachment; filename=behrouz.zip");

h.alizadeh
شنبه 16 شهریور 1387, 04:04 صبح
این از کد من برای دانلود فایل:


Response.Clear()
Response.AddHeader("Content-Disposition", "attachment; filename=" & file.Name)
Response.AddHeader("Content-Length", file.Length.ToString())
Response.ContentType = "application/octet-stream"
Response.WriteFile(file.FullName)
Response.End()



راستی این قسمتش رو من خودم خوب نمیدونم:


Response.ContentType = "application/octet-stream"


میشه کسی مقدارهای ممکن برای این پارامتر رو بگه و توضیح بده؟

saradashti
چهارشنبه 13 فروردین 1393, 16:37 عصر
آره اینجوری میشه و هم میشه همزمان سازی کرد یعنی اینکه دیتایی که داره برای شما ارسال میشه عینا برای کاربر بفرستی یعنی یه جورایی نقش رابط رو بازی کنی تا لازم نباشه فایل رو جایی ذخیره کنی.

البته تمام موارد بالا در صورتی که فایل خارج از سایت شما باشه وگرنه با همون مسیر فیزیکی هار به راحتی این کار انجام میشه.

موفق باشید


سلام
درمورد روشی که گفتید، آیا نمونه asp.net برای این کار میتونید بگذارید
ممنون میشم راهنمایی کنید چون شدیدا به همین قضیه نیاز دارم