PDA

View Full Version : نحوه ذخیره فایل در دیتابیس



kpshtdary
دوشنبه 30 آذر 1388, 19:00 عصر
با سلام
ایا مایکروسافت راهی برای ذخیره فایل (همه (عکس و صدا و word و pdf و ...))در دیتابیس گذاشته؟ یا باید خودمان راهی برایش بیابیم؟؟
دارم یک برنامه بایگانی طراحی میکنم و به ذخیره موارد بالا در دیتا نیاز دارم. خودم راهی یافتم و انهم ذخیره کردن کاراکترهای سازنده فایل در یک جدول است. البته خیلی سخت هست و ناگفته هم نماند راستش بلدم نیستم چجوری اینکارو بکنم.
دوستان اگه راهی بنظرشون میاد لطف کنن راه و روش ان را بگن .......:ناراحت:. ممنون میشم

AliRezaPro
دوشنبه 30 آذر 1388, 20:21 عصر
بله ،درواقع ذخیره کردن همه ی موارد امکان دارد .
شما کار رو استرارت بزنید و بعد اینکه به مشکل برخوردین در انجمن کمک بگیرید.

kpshtdary
دوشنبه 30 آذر 1388, 21:28 عصر
خوب لطف کنید یک مثال ساده برام بزنید تا بتونم هر فایلی رو ذخیره کنم

AliRezaPro
سه شنبه 01 دی 1388, 00:20 صبح
شما سرچ کردید؟
روال کار به این صورت هست قبل از هر چیز اون رو تبدیل به بایت میکنید و بعد اینسرت میکنید
مثلا این تابع رو نگاه کن
byte[] ReadFile(string sPath)
{
//Initialize byte array with a null value initially.
byte[] data = null;

//Use FileInfo object to get file size.
FileInfo fInfo = new FileInfo(sPath);
long numBytes = fInfo.Length;

//Open FileStream to read file
FileStream fStream = new FileStream(sPath, FileMode.Open, FileAccess.Read);

//Use BinaryReader to read file stream into byte array.
BinaryReader br = new BinaryReader(fStream);

//When you use BinaryReader, you need to supply number of bytes to read from file.
//In this case we want to read entire file. So supplying total number of bytes.
data = br.ReadBytes((int)numBytes);
return data;
}
شما میتونید از برنامه ایی که تو امظای بنده هست ایده بگیرید.

Soroush.Sarabi
سه شنبه 01 دی 1388, 09:51 صبح
دوست عزیز همینظور که دوستمون man7tomani (http://barnamenevis.org/forum/member.php?u=46852) گفتن به روشهای مختلفی می تونید Stream مربوط به

فایل رو در قالب byte[] بدست بیاری و در دیتابیس در انواع داده ای image , binary ذخیره کنی.

kpshtdary
سه شنبه 01 دی 1388, 10:09 صبح
ممنون از کمکهاتون.
فایل رو تو داتابیس ذخیره کردم ولی در مورد بازیابی و ذخیره ان یک مشکل کوچیک دارم.
عکسارو تونستم بازیابی کنم ولی در مورد فایلهای دیگر انها رو خراب میکنه.
قالب ان رو هم یک دفعه با image یک دفعه با binary امتحان کردم ولی جواب نداد.
فکر کنم فایلهایی که ظرفیتشون زیاده رو ذخیره نمیکنه. کجای کار اشتباست؟؟؟

byte[] ReadFile(string sPath)
{
//Initialize byte array with a null value initially.
byte[] data = null;

//Use FileInfo object to get file size.
FileInfo fInfo = new FileInfo(sPath);
long numBytes = fInfo.Length;

//Open FileStream to read file
FileStream fStream = new FileStream(sPath, FileMode.Open, FileAccess.Read);

//Use BinaryReader to read file stream into byte array.
BinaryReader br = new BinaryReader(fStream);

//When you use BinaryReader, you need to supply number of bytes to read from file.
//In this case we want to read entire file. So supplying total number of bytes.
data = br.ReadBytes((int)numBytes);
return data;
}
void WriteFile(byte[] sbite,string addras)
{
//Initialize byte array with a null value initially.

//Use FileInfo object to get file size.
FileInfo fInfo = new FileInfo(addras);
// long numBytes = fInfo.Length;

//Open FileStream to read file
FileStream fStream = new FileStream(addras, FileMode.OpenOrCreate, FileAccess.Write);

//Use BinaryReader to read file stream into byte array.
BinaryWriter br = new BinaryWriter(fStream);

//When you use BinaryReader, you need to supply number of bytes to read from file.
//In this case we want to read entire file. So supplying total number of bytes.

br.Write(sbite);
br.Close();
}