PDA

View Full Version : ذخیره فایل با فرمت SWF درون SQL Server 2000



newgoldenman
شنبه 17 آذر 1386, 23:03 عصر
آیا کسی میتونه به من کمک کنه؟!
میخوام فایل های Flash با فرمت SWF رو داخل SQL Server 2000 ذخیره کنم، و هنگامی که توی برنامه به اون نیاز دارم، ( از داخل DataBase خارج کرده و ) استفاده کنم.

خیلی خیلی هم ممنونم از دوستان عزیز

mr_moghimkhani
یک شنبه 18 آذر 1386, 11:58 صبح
میشه بگی چرا آدرسشونو تو دیتابیست نگه نمی داری؟ حتماً میخوای فایلتو تو دایتابیس نگه داری؟

newgoldenman
یک شنبه 18 آذر 1386, 12:03 عصر
آدرس که ارزشی نداره! میخوام خود فایل رو ببرم توی DB مثل عکس و ... مهم اینه که فایل اصلی داخل DB باشه.

hassan razavi
یک شنبه 18 آذر 1386, 12:23 عصر
میتونید از FileStream استفاده کنید و فایل رو بصورت Byte[] در Database بریزید و برا خوندم هم از FileStream استفاده کنید و در فایل ذخیره کنید.

newgoldenman
یک شنبه 18 آذر 1386, 12:38 عصر
میتونید از FileStream استفاده کنید و فایل رو بصورت Byte[] در Database بریزید و برا خوندم هم از FileStream استفاده کنید و در فایل ذخیره کنید.

ممنون دوست عزیز از کمکتون. میتونید یک مقاله ای چیزی که بتونه بیشتر کمکم کنه، معرفی کنید. خیلی ممنونم:خجالت:

OrcasCoder
یک شنبه 18 آذر 1386, 13:35 عصر
آدرس که ارزشی نداره! میخوام خود فایل رو ببرم توی DB مثل عکس و ... مهم اینه که فایل اصلی داخل DB باشه.

اگه می خوای خود فایل امن بمونه و نشه دانلودش کرد که نمیشه !
اگه می خوای سورس رو در مقابل دیکامپایلر های ایمن کنی بهتر از SWF Encrypt استفاده کنی !
چیزی پیدا نکردم ولی خودم ور میرم ببینم چیکار میشه کرد.:عصبانی++:

hassan razavi
یک شنبه 18 آذر 1386, 13:46 عصر
دوست عزیز فکر کنم منظور دوستمون newgoldenman رو اشتباه متوجه شدی. هدف دوستمون از ذخیره فایل در بانک چیز دیگه ای هست.
دوستمون به هر منظوری به دنبال کدی برای ذخیره و بازیابی فایل در بانک هست نه ایمن سازی فایل Flash

newgoldenman
یک شنبه 18 آذر 1386, 18:02 عصر
دوست عزیز فکر کنم منظور دوستمون newgoldenman رو اشتباه متوجه شدی. هدف دوستمون از ذخیره فایل در بانک چیز دیگه ای هست.
دوستمون به هر منظوری به دنبال کدی برای ذخیره و بازیابی فایل در بانک هست نه ایمن سازی فایل Flash

دقیقاً... در واقع میخوام برای پروژه هایی که تحویل مشتری میدم، فقط هنگام اجرای برنامه و اون هم باز فقط هنگاهی که نیاز به فایل فلش مربوظه هست، فایل فلش با فرمت SWF رو از دیتا بیس خارج کنم، روی اون پردازش انجام بدم و یا نمایش...

Mahdi.Kiani
یک شنبه 18 آذر 1386, 20:04 عصر
آدرس که ارزشی نداره! میخوام خود فایل رو ببرم توی DB مثل عکس و ... مهم اینه که فایل اصلی داخل DB باشه.

اتفاقا خیلی هم با ارزشه!!!!!!!!
ارزش اون وقتی مشخص میشه که تعداد فایل ها زیاد باشه یا حجم اونا زیاد باشه و بدتر از اون برنامه بخواد روی شبکه با n تا client کار بکنه !!!!!!

newgoldenman
یک شنبه 18 آذر 1386, 21:11 عصر
اتفاقا خیلی هم با ارزشه!!!!!!!!
ارزش اون وقتی مشخص میشه که تعداد فایل ها زیاد باشه یا حجم اونا زیاد باشه و بدتر از اون برنامه بخواد روی شبکه با n تا client کار بکنه !!!!!!

بله دوست عزیز. در این صورتی که شما فرمودین، بله، ولی خواسته و مشکل من چیز دیگریست:


در واقع میخوام برای پروژه هایی که تحویل مشتری میدم، فقط هنگام اجرای برنامه و اون هم باز فقط هنگاهی که نیاز به فایل فلش مربوظه هست، فایل فلش با فرمت SWF رو از دیتا بیس خارج کنم، روی اون پردازش انجام بدم و یا نمایش...

hassan razavi
دوشنبه 19 آذر 1386, 08:25 صبح
نحوه ذخیره فایل در بانک :

یک جدول بنام TFile در SQL Server 2000 ایجاد کنید. من در بانک Master اینکار رو کردم.
2 تا فیلد با مشخصات زیر ایجاد کنید:
1- name nvarchar key
2-swf image allow null

حالا این کد برای ذخیره در بانک (برای هر فایلی میتونید استفاده کنید) برای مثال از آدرس C:\\1.swf استفاده کردم.


FileStream fs = new FileStream("d:\\1.swf",FileMode.Open);
FileInfo fi = new FileInfo("d:\\1.swf");
byte[] swf = new byte[(int)fi.Length];
fs.Read(swf, 0, (int)fi.Length);

SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=master;Persist Security Info=True;Password=1;User ID=sa");
con.Open();
SqlCommand com = new SqlCommand("Insert into TFile (name,swf) Values (@name,@swf)", con);
com.Parameters.Add("name", SqlDbType.NVarChar).Value = "1.swf";
com.Parameters.Add("swf", SqlDbType.Image).Value = swf;
com.ExecuteNonQuery();
con.Close();


اینم کد برای بازیابی از بانک (برای مثال در مسیر d:\\222.swf استفاده کردم)


SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=master;Persist Security Info=True;Password=1;User ID=sa");
con.Open();
SqlDataReader dr;
SqlCommand com = new SqlCommand("select * from TFile", con);
dr = com.ExecuteReader();
dr.Read();
byte[] swf = (byte[])dr.GetValue(1);
FileStream fs = new FileStream("d:\\222.swf", FileMode.Create);
fs.Write(swf, 0, swf.Length);
fs.Close();
con.Close();

newgoldenman
دوشنبه 19 آذر 1386, 09:18 صبح
دستت طلا دوست عزیز. خیلی خیلی خیلی ممنونم.

hassan razavi
دوشنبه 19 آذر 1386, 09:37 صبح
خواهش میکنم دوست عزیز. فقط اگه مشکلتون کاملا حل شد ، تاپیک رو حل شده اعلام کنید. متشکرم

newgoldenman
دوشنبه 19 آذر 1386, 17:24 عصر
باور کنید نزدیک به یک سال دنبال این تکنیک بودم! چند ماه پیش هم تاپیک زدم و همین درخواست رو داشتم، ولی به جواب نرسیدم.
یک دنبا ممنونم ازتون:بوس::لبخند:

choobin84
چهارشنبه 21 آذر 1386, 22:12 عصر
2-swf image allow null

]
جالبیش اینجاست همه چی رو میشه توش ریخت حتی اگه Image نباشه. منظورم اینه که باینری نیست