PDA

View Full Version : download فایل بدون استفاده از لینک مستقیم



turk_programmer
چهارشنبه 09 فروردین 1385, 16:08 عصر
با سلام
من میخوام به امکانات سایتم دانلود سنتر هم اضافه کنم.
ولی نمیخوام فایلهایی رو که برای دانلود به کاربر نشون میدم با لینک Direct باشه
مثلا تو php همین فروم دانلو فایل به شکل زیر ممکنه :
http://www.barnamenevis.org/forum/attachment.php?attachmentid=2961&d=1143391847
و هیچ لینک مستقیمی وجود نداره.
میخواستم ببینم این کار تو Asp.net ( ترجیها" سی شارپ) چطوری امکانپذیره
ممنون

manager
چهارشنبه 09 فروردین 1385, 22:23 عصر
خیلی راحت :




Response.Redirect("File Address");






حالا لینکی به این صفحه ایجاد کنید که در یک New Page باز بشه همچنین می تونین یه QueryString به این صفحه ارسال کنید که مثلا نام فایل ,مقصد, کاربر یا چیز دیگر رو مشخص کنه و این صفحه با توجه به موقعیت جاری چیزی را برای Download قرار دهد.

می تونید برای امنیت بیشتر فایل های مورد نظر برای Download را در یه شاخه ی امن قرار دهید که هیچ کس و هیچ چیز جز این صفحه به آن دسترسی نداشته باشد.

nazaninam
چهارشنبه 09 فروردین 1385, 23:20 عصر
میشه از outpustream هم استفاده کرد؟ اگه میشه به چه نحوی؟

mahmoodreza
پنج شنبه 10 فروردین 1385, 00:36 صبح
خیلی راحت :
می تونید برای امنیت بیشتر فایل های مورد نظر برای Download را در یه شاخه ی امن قرار دهید که هیچ کس و هیچ چیز جز این صفحه به آن دسترسی نداشته باشد.


سلام
ایا میشه در این مورد بیشتر توضیح دهید؟ طریقه احازه دادن فقط به یک صفحه برای استفاده از یک فولدر؟
و من وقتی برای یک فایل گیف یا عکس اینکار را میکنم خود به خود باز میشود و برای دانلود نمیپرسد.
ممنون میشم توضیح دهید

turk_programmer
پنج شنبه 10 فروردین 1385, 08:24 صبح
فکر کنم منظورشون از "اجازه دادن فقط به یک صفحه برای استفاده از یک فولدر" همون authentication
مربوط به یه فولدر هست که تو Web.config اون فولدر فقط به کاربرای خاصی اجازه ورود میده.
به عنوان مثال :
location path="Admin">
<system.web>
<authorization>
<allow roles="Admin"/>
<deny users="*"/>
</authorization>
</system.web>
</location>

برای مثال به این صفحه مراجعه کنین :
http://www.howtodothings.com/computers/a792-aspnet-forms-authentication-with-roles.html

SalarSoft
پنج شنبه 10 فروردین 1385, 12:26 عصر
به عنوان نمونه کدی مانند این رو در صفحه مربوط به دانلود قرار بده:


Response.ClearContent();
Response.ClearHeaders();
Response.ContentType="application/octet-stream";
Response.AddHeader("Content-Disposition","attachment; filename="
+ System.IO.Path.GetFileName("آدرس فایل"));
Response.WriteFile("آدرس فایل");
Response.End();

mahmoodreza
پنج شنبه 10 فروردین 1385, 20:38 عصر
فکر کنم منظورشون از "اجازه دادن فقط به یک صفحه برای استفاده از یک فولدر" همون authentication
مربوط به یه فولدر هست که تو Web.config اون فولدر فقط به کاربرای خاصی اجازه ورود میده.


نه به نظر من فرمودند یک صفحه فقط اجازه دسترسی داشته باشه
یعنی اینکه میشه یک فولدر را جوری تعریف کرد که یک فایل فقط بطونه بهش دسترسی داشته باشه و نا یوزر
آیا این کار را با IIS باید انجام داد و یا با role در asp.net میشود اینکار را کرد؟

mahmoodreza
پنج شنبه 10 فروردین 1385, 20:39 عصر
به عنوان نمونه کدی مانند این رو در صفحه مربوط به دانلود قرار بده:


Response.ClearContent();
Response.ClearHeaders();
Response.ContentType="application/octet-stream";
Response.AddHeader("Content-Disposition","attachment; filename="
+ System.IO.Path.GetFileName("آدرس فایل"));
Response.WriteFile("آدرس فایل");
Response.End();



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

SalarSoft
جمعه 11 فروردین 1385, 10:12 صبح
آیا با اینکار یوزر امکانی دارد که فولدری که فایل درش قرار دارد را تشخیص دهد؟؟
خیر. با این کار دانلود مستقیما از صفحه انجام خواهد و کاربر متوجه هیچ چیز نخواهد شد.
تنها مشکلی که این روش دارد عدم پشتیبانی از Resume support است که با استفاده ازابزار Download resumable قابل رفع است.
از سایت http://www.devx.com می تونی به زبان vb.net دریافت کنی. یه نسخه شو به #C تبدیل کردم که اگه خواستی اینجا می ذارم.