PDA

View Full Version : سوال: ذخیره و نمایش pdf در دیتابیس sql با asp.net



dehqhani
سه شنبه 17 تیر 1393, 08:55 صبح
سلام

ما یه جدول اکسس دارم که آیتم های زیر را دارد و برای ذخیره و بایگانی نامه هایی که برامون میاد استفاده میکنم بخاطر اینکه بعد از مدتی حجم این دیتابیس اکسس به 2گیگ میرسه مجبوریم یه دیتابیس دیگه استفاده کنیم

تصوير نامه , تاريخ نامه,شماره نامه,پيوست,فرستنده,گيرنده,ع نوان

حالا میخوام این کار رو به وسیله دیتابیس sql و asp انجام بدیم .

به نظر شما باید داخل دیتابیس فایلهلی pdf رو ذخیره کنیم یا نه آدرس رو بزاریم داخل دیتابیس و فایل رو داخل سرور


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


اگه کسی روش ذخیره سازی رو با linq میدونه ممنون میشم بهم بگه بد جور کارم گیره

iceweek
سه شنبه 17 تیر 1393, 10:19 صبح
هرکدوم مزایا داره.
ستون ازنوع باینری درست کن.فایلتو بهبایت کن توی یه متغیر بریز و ذخیره کن

dehqhani
سه شنبه 17 تیر 1393, 10:31 صبح
دوست عزیز من مبتدی هستم میشه لطف کنید روش کار رو به همراه یه مثال که با linq باشه برام بزارید تا بهتر متوجه بشم

ممنون میشم

_elhfarzan
سه شنبه 17 تیر 1393, 11:22 صبح
اگه مشکل سرور نداری و حجم و سرعت مشکل خاصی نداری حتما به عنوان یک فیال ذخیره کن و فقط آدرسشو در بانک بزار. البته اگه حجم فایلهات کمه داخل خود بانک هم ذخیره کنی راه دوری نمیره.ولی باید توجه داشته باشی که در دراز مدت دچار مشکل میشی . چون روم ب دیوار اگه پشتیبان سرور هم هستی باید هروز از بانک بک اپ بگیری که ذخیره عکس در بانک باعث حجم دار شدنش میشه و بک اپ گیری سخت میشه .این یکی از مشکلاتش بود. ولی مزیتش در دسترسی به اونه که سریع هستش.
if (FileUpload1.HasFile && FileUpload1.PostedFile.ContentLength > 0) {
string fileName = FileUpload1.FileName;
byte[] fileByte = FileUpload1.FileBytes;
Binary binaryObj = new Binary(fileByte);
Data.Files.InsertOnSubmit(new File { File_Name = "ss", File_Data = binaryObj,memberid=Convert.ToInt32(codozviyat) });
Data.SubmitChanges();
Image1.ImageUrl = "~/MyPhoto.ashx?Id=" + codozviyat;
}

_elhfarzan
سه شنبه 17 تیر 1393, 11:23 صبح
string id = context.Request.QueryString["Id"]; System.IO.MemoryStream stream = new System.IO.MemoryStream();
string Conection = System.Configuration.ConfigurationManager.Connecti onStrings["NEZAMFULLConnectionString"].ConnectionString;
System.Data.SqlClient.SqlConnection sqlConn = new System.Data.SqlClient.SqlConnection(Conection);
try
{
sqlConn.Open();
System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand("select [File Data] from Files where memberid=" + Convert.ToInt32(id) + "", sqlConn);
byte[] image = (byte[])command.ExecuteScalar();
if (image != null)
{
stream.Write(image, 0, image.Length);
System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(stream);
context.Response.ContentType = "image/gif";
bitmap.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
}
sqlConn.Close();
stream.Close();
}
finally
{
sqlConn.Close();
stream.Close();
}

اینم میشه فایل
MyPhoto.ashx بسازش برای نمایش عکست

dehqhani
سه شنبه 17 تیر 1393, 11:46 صبح
دوست عزیز اگه بتونید برام یه sample با ذخیره در دیتابیس و linq بزارید ممنون میشم

نگرفتم کامل چجوری هست روش کار

dehqhani
سه شنبه 17 تیر 1393, 15:38 عصر
کسی نبود یه sample داشته باشه