نمایش نتایج 1 تا 13 از 13

نام تاپیک: دانلود فایل از URL در ASP.NET Core

  1. #1

    دانلود فایل از URL در ASP.NET Core

    سلام دوستان.
    عزیزان دانلود فایل از روی هسات فعلی رو که خوب بلدم مشکلی نیست.
    سوال من اینه:
    بنده یک سایت دارم و یک هاست دانلود، فایلهایی که برای دانلود قرار میدم روی هاست دانلود هست.
    حالا نمیخوام که کاربر لینک اصلی فایل رو ببینه.
    تو ASP.NET Core کسی میدونه باید چکار کرد؟
    من این کد رو دارم کار میکنم درست کار میکنه ولی مشکل اینجاست که با این کد من قابلیت ریزام دیگه ندارم!
     var url = "dl.mysite.com/file.zip";
    var fileName = ips.GetFileNameFromUrl(url);

    var ext = ips.GetFileExtension(fileName);

    var mimType = ips.GetMimeType(ext);

    var stream = await Client.GetStreamAsync(url);

    return new FileStreamResult(stream, mimType)
    {
    FileDownloadName = fileName
    };

  2. #2

    نقل قول: دانلود فایل از URL در ASP.NET Core

    من این کار رو در Web Forms انجام دادم مشکلی هم نداشته همین کار رو دقیقا تو ASP.NET Core میخوام انجام بدم.
    کد کاری که انچام دادم تو WebForms :
     Stream stream = null;

    //This controls how many bytes to read at a time and send to the client
    int bytesToRead = 10000;

    // Buffer to read bytes in chunk size specified above
    byte[] buffer = new Byte[bytesToRead];

    // The number of bytes read
    try
    {
    //Create a WebRequest to get the file
    HttpWebRequest fileReq = (HttpWebRequest)HttpWebRequest.Create(url);

    //Create a response for this request
    HttpWebResponse fileResp = (HttpWebResponse)fileReq.GetResponse();

    if (fileReq.ContentLength > 0)
    fileResp.ContentLength = fileReq.ContentLength;

    //Get the Stream returned from the response
    stream = fileResp.GetResponseStream();

    // prepare the response to the client. resp is the client Response
    var resp = HttpContext.Current.Response;

    //Indicate the type of data being sent
    resp.ContentType = "application/octet-stream";

    //Name the file
    resp.AddHeader("Content-Disposition", "attachment; filename="" + fileName + """);
    resp.AddHeader("Content-Length", fileResp.ContentLength.ToString());

    int length;
    do
    {
    // Verify that the client is connected.
    if (resp.IsClientConnected)
    {
    // Read data into the buffer.
    length = stream.Read(buffer, 0, bytesToRead);

    // and write it out to the response's output stream
    resp.OutputStream.Write(buffer, 0, length);

    // Flush the data
    resp.Flush();

    //Clear the buffer
    buffer = new Byte[bytesToRead];
    }
    else
    {
    // cancel the download if client has disconnected
    length = -1;
    }
    } while (length > 0); //Repeat until no data is read
    }
    finally
    {
    if (stream != null)
    {
    //Close the input stream
    stream.Close();
    }
    }

  3. #3
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379

    نقل قول: دانلود فایل از URL در ASP.NET Core

    من کد مورد نیاز شما رو در ASP.NET MVC 5.2 دارم، فقط باید یک فرصت کنم تو ASP.NET MVC Core تستش کنم. اوکی بود براتون میگذارم.

  4. #4

    نقل قول: دانلود فایل از URL در ASP.NET Core

    بسیار ممنونم جناب کرامتی.
    منتظر هستم قربان

  5. #5

  6. #6

    نقل قول: دانلود فایل از URL در ASP.NET Core

    کد و توضیحی که دیدم مربوط به فایلهایی بودی که روی هاست خودت هاست شده باشن، بنده هاست دانلودم یک سرور دیگه س و باید از اونجا بخونم.
    البته تا جایی که میدونم زیاد درست نیست مخصوصا برای فایلهای حجیم چون برای بافر یا استریم کردن باید اول روی مموری دانلود بشه بعد از اونجا رو سیستم کاربر دانلود بشه.
    حالا منتظر راه حل جناب کرامتی هستم ببینم چطور میشه.

  7. #7

    نقل قول: دانلود فایل از URL در ASP.NET Core

    نقل قول نوشته شده توسط مهدی کرامتی مشاهده تاپیک
    من کد مورد نیاز شما رو در ASP.NET MVC 5.2 دارم، فقط باید یک فرصت کنم تو ASP.NET MVC Core تستش کنم. اوکی بود براتون میگذارم.
    جناب کرامتی عزیز، ببخشید یخورده عجله میکنم چون گیرم بخاطر این موضوع در حدی که راضی شده بودم با Web Forms یک ساب دامین درست کنم و این وظیفه رو اون انجام بده و نتیجه کار رو به سایت اصلی که DotNet Core هست برگردونه ولی اگر اینکار رو که فرمودید بتونم انجام بدم که بی نهایت عالی میشه.
    ممنون از شما

  8. #8

    نقل قول: دانلود فایل از URL در ASP.NET Core

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

  9. #9

    نقل قول: دانلود فایل از URL در ASP.NET Core

    جناب کرامتی عزیز بنده همچنان منتظر هستم.
    واقعا نیاز دارم به این کد.
    سپاس

  10. #10
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379

    نقل قول: دانلود فایل از URL در ASP.NET Core

    با عرض پوزش از تاخیر در پاسخ، اینجا را ببینید:
    https://vikingerik.wordpress.com/201...suming-actions

    لینک پکیج فوق در Nuget هم موجوده:
    https://www.nuget.org/packages/MVC.R...ActionResults/

    اگر هم خواستید به سورس اش دسترسی داشته باشید قبل از اینکه CodePlex برای همیشه بسته شود می توانید آرشیو Respository اش رو دانلود کنید:
    https://codeplexarchive.blob.core.wi...ingActions.zip

    این هم یک مثال از نحوه استفاده اش:
            public ActionResult DownloadAttachment(int? id)
    {
    if (id == null)
    {
    ViewBag.Message = "شناسه ضمیمه مشخص نشده است.";
    return View("Error");
    }

    var attachment = db.ArticleAttachments.Find(id);
    if (attachment == null)
    {
    ViewBag.Message = "هیچ ضمیمه ای با این شناسه وجود ندارد.";
    return View("Error");
    }

    string filepath = Server.MapPath(attachment.ArticleAttachmentFileUrl );
    return new ResumingFilePathResult(filepath, "application/octet-stream", attachment.ArticleAttachmentOriginalFilename);
    }


  11. #11

    نقل قول: دانلود فایل از URL در ASP.NET Core

    نقل قول نوشته شده توسط مهدی کرامتی مشاهده تاپیک
    با عرض پوزش از تاخیر در پاسخ، اینجا را ببینید:
    https://vikingerik.wordpress.com/201...suming-actions

    لینک پکیج فوق در Nuget هم موجوده:
    https://www.nuget.org/packages/MVC.R...ActionResults/

    اگر هم خواستید به سورس اش دسترسی داشته باشید قبل از اینکه CodePlex برای همیشه بسته شود می توانید آرشیو Respository اش رو دانلود کنید:
    https://codeplexarchive.blob.core.wi...ingActions.zip

    این هم یک مثال از نحوه استفاده اش:
            public ActionResult DownloadAttachment(int? id)
    {
    if (id == null)
    {
    ViewBag.Message = "شناسه ضمیمه مشخص نشده است.";
    return View("Error");
    }

    var attachment = db.ArticleAttachments.Find(id);
    if (attachment == null)
    {
    ViewBag.Message = "هیچ ضمیمه ای با این شناسه وجود ندارد.";
    return View("Error");
    }

    string filepath = Server.MapPath(attachment.ArticleAttachmentFileUrl );
    return new ResumingFilePathResult(filepath, "application/octet-stream", attachment.ArticleAttachmentOriginalFilename);
    }

    سلام برای فایل های حجیم جواب میده؟؟

  12. #12
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379

    نقل قول: دانلود فایل از URL در ASP.NET Core

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

  13. #13

    نقل قول: دانلود فایل از URL در ASP.NET Core

    ممنون از پاسختون. این کد مشکل داره و پارامتر سوم رو نمیشناسه!

تاپیک های مشابه

  1. سوال: دانلود فایل های آفیس در asp.net
    نوشته شده توسط Arsham** در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: دوشنبه 02 خرداد 1390, 19:19 عصر
  2. سوال: ساخت فایل اجرایی از پروژه در asp.net
    نوشته شده توسط _majede در بخش C#‎‎
    پاسخ: 1
    آخرین پست: شنبه 11 دی 1389, 19:40 عصر
  3. استفاده از فایل های خارجی در asp.net
    نوشته شده توسط amuSoheil در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: چهارشنبه 22 مرداد 1382, 19:37 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •