PDA

View Full Version : ذخیره فایل در بانک اطلاعاتی



elena2007
شنبه 10 دی 1390, 17:24 عصر
سلام . میشه یکی بگه چه طور می تونم محتوای یه فایل رو تو پایگاه ذخیره کنم؟؟؟
فایلم ممکنه txt یا wprd یا pdf یا هر چیز دیگه ای باشه ...

sayvan
شنبه 10 دی 1390, 17:45 عصر
شما میتونین از کلاس File در فضای نام IO برای خواندن فایلهای متنی استفاده کنین
(File.ReadAllText(path file
استفاده و کنید و فایلتون رو در یک متغییر رشته ایی ذخیره کنین و تو بانکتون ثبت کنین
و بعد با متد File.WriteAllText اطلاعاتتون رو از بانک در یه فایل ذخیره کنین
ولی برای فرمت های دیگه نظری ندارم

shahryarpanah
شنبه 10 دی 1390, 17:46 عصر
با سلام
بهترین روشی که به ذهن بنده می رسد و آن را انجام نیز داده ام این است که یک جدول با حداقل سه ستون در SQLServer می سازیم یکی از این ستونها نام فایل را دخیره می کند یکی پسوند فایل را و دیگری بایتهای فایل را به این ترتیب که فایل را می خوانیم و در یک آرایه از بایتها می ریزیم حال این آرایه بایتها را در SQLServer دخیره می کنیم موقع بازیابی این فایل از بانک اطلاعاتی هم بایتها را با نام و پسوند ذخیره شده به عنوان یک فایل می نویسیم .
تا آنجا که خاطرم هست تابع File.GetBytes و تابع File.WriteBytes در سی شارپ این عملیات را می توانند انجام دهند تایپ این فیلد در بانک اطلاعاتی هم image می باشد

sayvan
شنبه 10 دی 1390, 17:53 عصر
با سلام

تا آنجا که خاطرم هست تابع File.GetBytes و تابع File.WriteBytes در سی شارپ این عملیات را می توانند انجام دهند تایپ این فیلد در بانک اطلاعاتی هم image می باشد
فکر کنم این توابع رو میگین (حجم ذخیره سازی بالا میره)
File.ReadAllBytes();
File.WriteAllBytes();

elena2007
شنبه 10 دی 1390, 18:09 عصر
بقیه فرمت ها رو چیکار کنم ؟
کسی نیست یاریم کند ؟

sayvan
شنبه 10 دی 1390, 18:12 عصر
بقیه فرمت ها رو چیکار کنم ؟
کسی نیست یاریم کند ؟
دوست عزیز فکر کنم هر فایلی رو پشتیبانی میکنه تستش کنید
File.ReadAllBytes();
File.WriteAllBytes();

elena2007
دوشنبه 12 دی 1390, 11:27 صبح
سلام دوستان ...
با این کد ها تونستم انجام بدم . گفتم بزارم اینجا شاید به درد یکی بخوره ...
واسه تمامی فرمت ها هم تست شده هستش :
//*************save in db*******************
SqlConnection con =new SqlConnection("Data Source=GOONASH;Initial Catalog=db1;Integrated Security=True");
SqlCommand cmd =new SqlCommand("INSERT INTO t1 (bin) VALUES(@binfile)", con);
FileStream fs = new FileStream(filePath + "\\" + fileName, FileMode.Open, FileAccess.Read);
byte[] bf = new byte[fs.Length];
fs.Read(bf, 0, (int)fs.Length);
cmd.Parameters.AddWithValue("binfile", bf);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
fs.Close();
//*********************************


//******************read from db ****************
SqlConnection con = new
SqlConnection("Data Source=GOONASH;Initial Catalog=db1;Integrated Security=True");
SqlCommand cmd = new
SqlCommand("SELECT bin FROM t1 WHERE id=3", con);
FileStream fs = new
FileStream("c:\\11.xls", FileMode.Create, FileAccess.Write);

con.Open();
byte[] bf = (byte[])cmd.ExecuteScalar();

fs.Write(bf, 0, bf.Length);

System.Diagnostics.Process.Start("c:\\11.xls");

con.Close();
fs.Close();

استرینگ رو بر اساس سیستم خودتون عوض کنین ...
موفق باشین