ورود

View Full Version : دانلود فایل



ali-miladian
دوشنبه 25 اردیبهشت 1396, 14:51 عصر
سلام

من یک سایت با نام example.com دارم و برای این سایت هم یک ساب دامین با نام files.example.com درست کردم و حالا یک سری از فایل ها را درپوشه www در ساب دامین قرار دادم

حالا اگر در برنامه mvc یک اکشن برای دانلود این فایل ها داشته باشم چطور باید فایل ها را دانلود کنم ؟
دوتا راه حل پیدا کردم
یکی WebClient و یکی FTP

جواب میده ولی مشکل اینجاست که :
مثلا با FTP اول آدرس یک فایل 100 مگی را بهش پاس بدهم بعد یک استریم برمیگرداند بعد استریم را برمیگردونم به مروگر کاربر با Content-Type مشخص

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


145220


145222
با زدن روی دکمه Start Download شروع به دانلود نمی کنه بعد از چند دقیقه که فایل را به حالت استریم دریافت کرد اون موقع دانلود را شروع می کنه ...

----------------------

یا مثلا اگر آدرس اکشن دانلود کننده را به دانلود منیجر بدهم :

145220


حالا اگر چند دقیقه صبر کنم فایل جهت دانلود را نمایش می دهد :

145223



چکار کنم که این مدت زمان طول نکشه ?


یا در هر صورت آیا روشی جهت دانلود این فایل ها پیشنهاید می کنید ؟ فقط باید در نظر داشت که فایل ها باید از طرق اکشن متد دانلود شوند/

مممنون

Moien Tajik
دوشنبه 25 اردیبهشت 1396, 18:33 عصر
از Return File استفاده کنید ( برای فایل های با حجم بالا باید از webconfig ، طول maxRequestLength و maxAllowedContentLength رو افزایش بدید ) :

public class DownloadController : Controller
{
public async Task<ActionResult> Download(int id)
{
var fileName = "YourFile.mp3";


// Find File MIME Type
var contentType = MimeMapping.GetMimeMapping(fileName);


// Destination Path
var destPath = Path.Combine(Server.MapPath("~/Download"), fileName);


// Store File Bytes
var bytes = System.IO.File.ReadAllBytes(destPath);


// Make Download Link For User
return File(bytes, contentType, fileNameToSave);
}
}

ali-miladian
دوشنبه 25 اردیبهشت 1396, 19:06 عصر
سلام
ممنون

چون فایل یه جایی دیگه است مدت زمانی که طول میکشه که اون فایل را بخونه و به استریم تبدیل کنه خیلی زیاده ؟
حالا اگر در همین بین Progress Bar مربوط به Download Manger نشون میداد خوب بود . بعضی وقت ها هم وقتی می خواهم از یوتیوب فایلی بگیرم همین مشکل را دارم