مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

sadegh_ham

عضویت از 1393/12/14

مشکل در دانلود فایلی که با متد FileStream در SQL دخیره شده

  • یکشنبه 1 آذر 1394
  • 13:17
تشکر میکنم

با سلام بنده  یک جدول دارم که داخلش از Filestream Sql  استفاده  کردم و میخوام الان بوسیله یک FileResult  در  MVC فایل را برای دانلود به کاربر   بدم متد  Upload  رو نوشتم اما دانلودم رو نمی دونم چطوری  باید بنویسم  البته با EF  / مرسی...  

در واقع  زمان دانلود فایل بدون پسوند  به سمت کاربر  میره

 

  public FileResult Download(int Id)
        {

            FileStreamMVC.Models.FileStreamDataEntities db = new Models.FileStreamDataEntities();

            SqlDataReader rdr; byte[] fileContent = null;
            string mimeType = "";
            string fileName = "";
            const string connect = @"Data source=Win8-IT;initial catalog=FileStreamData;user id=sa;password=123";

            using (var conn = new SqlConnection(connect))
            {
                var qry = "SELECT StudentPic,Name,MIMEType FROM Student WHERE ID = @ID";
                var cmd = new SqlCommand(qry, conn);
                cmd.Parameters.AddWithValue("@ID", Id);
                conn.Open();
                rdr = cmd.ExecuteReader();
                if (rdr.HasRows)
                {
                    rdr.Read();
                    fileContent = (byte[])rdr["StudentPic"];
                    mimeType = rdr["MIMEType"].ToString();
                    fileName = rdr["Name"].ToString();
                }
            }
            return File(fileContent, mimeType, fileName);
        }

 

پاسخ های این پرسش

تعداد پاسخ ها : 6 پاسخ
کاربر سایت

sadegh_ham

عضویت از 1393/12/14

  • یکشنبه 1 آذر 1394
  • 14:43

اینم  عکس  دانلود  فایل

کاربر سایت

sadegh_ham

عضویت از 1393/12/14

  • دوشنبه 2 آذر 1394
  • 09:22

خواهشا  اگه کسی  میتونه کمک کنه

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 2 آذر 1394
  • 09:33

باید در filename پسوند را نیز اضافه کنید

کاربر سایت

sadegh_ham

عضویت از 1393/12/14

  • دوشنبه 2 آذر 1394
  • 09:38

سلام  مهندس  عزیز

 

آخه  فایل بصورت Binary  ذخیره  شده . چطوری موقع  متد  دانلود  پسوندش  رو بخونم؟

 

مرسی

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 2 آذر 1394
  • 10:07

کافیه فقط در نام اینکار رو بکنید تا با اون پسوند ذخیره بشه و سیستم کاربر فایل رو شناسایی کنه

کاربر سایت

sadegh_ham

عضویت از 1393/12/14

  • دوشنبه 2 آذر 1394
  • 10:10

کد اصلاح شده  که کار داد مجبور  شدم نام فایل هم ذخیره کنم

 

  public FileContentResult FileDownload(int Id)
        {
                       byte[] fileData;
            string fileName;
            FileStreamMVC.Models.FileStreamDataEntities dataContext = new Models.FileStreamDataEntities();
            var record = from p in dataContext.Student
                         where p.Id == Id
                         select p;
            //only one record will be returned from database as expression uses condtion on primary field
            //so get first record from returned values and retrive file content (binary) and filename
            fileData = (byte[])record.First().StudentPic.ToArray();
            fileName = record.First().FileName;
            return File(fileData, "text", fileName);            
        }

 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)