PDA

View Full Version : کمک در مورد نحوه ذخیره و بازیابی انواع فایل(مانند word،PDF وغیره) در پایگاه داده SQL server



amir_vb2005
پنج شنبه 19 مرداد 1391, 11:16 صبح
با سلام
لطفا در مورد نحوه ذخیره و بازیابی انواع فایل در پایگاه داده من را یاری کنید . بخشهایی که در تاپیکهای این سایت بود درست کار نمی کند لطفا به طور کامل نحوه ذخیره و بازیابی فایل در پایگاه داده را در صورت امکان به زبان Vb.net شرح دهید خیلی خیلی خیلی ممنون میشم:گریه::گریه::گریه::گریه:: جالت::خجالت::خجالت::خجالت::خ الت:

the king
پنج شنبه 19 مرداد 1391, 16:28 عصر
همه فایل ها رو بدون توجه به فرمت شون بصورت یک آرایه از بایت ها در می آورید :

Dim bytes() As Byte = IO.File.ReadAllBytes("C:\Your folder\Your file.ext")


و داخل جدول بانک اطلاعاتی تان یک فیلد از نوع Varbinary در نظر می گیرید و اون آرایه بایت ها رو داخلش می نویسید، مثلا :

yourDataTable.Rows(0)("YourFieldName") = bytes


موقع خواندن اش هم بر عکس اش رو انجام می دهید :

Dim bytes() As Byte = yourDataTable.Rows(0)("YourFieldName")
IO.File.WriteAllBytes("C:\Your folder\Your file.ext", bytes)

lilyum2
شنبه 30 آذر 1392, 15:18 عصر
همه فایل ها رو بدون توجه به فرمت شون بصورت یک آرایه از بایت ها در می آورید :

Dim bytes() As Byte = IO.File.ReadAllBytes("C:\Your folder\Your file.ext")


و داخل جدول بانک اطلاعاتی تان یک فیلد از نوع Varbinary در نظر می گیرید و اون آرایه بایت ها رو داخلش می نویسید، مثلا :

yourDataTable.Rows(0)("YourFieldName") = bytes


موقع خواندن اش هم بر عکس اش رو انجام می دهید :

Dim bytes() As Byte = yourDataTable.Rows(0)("YourFieldName")
IO.File.WriteAllBytes("C:\Your folder\Your file.ext", bytes)


سلام

ممکنه کد رو به زبان C# هم بفرمایید.
و اینکه اگه بخوایم فایلی با حجم بالا رو ذخیره کنیم باید چطوری از filestream استفاده کنیم؟:متفکر:

Mani_rf
شنبه 30 آذر 1392, 15:23 عصر
byte[] bytes = IO.File.ReadAllBytes(@"C:\Your folder\Your file.ext");

yourDataTable.Rows[0]["YourFieldName"] = bytes;

byte[] bytes = yourDataTable.Rows[0]["YourFieldName"];
IO.File.WriteAllBytes(@"C:\Your folder\Your file.ext", bytes);

مهدیار 2
پنج شنبه 08 خرداد 1393, 13:30 عصر
با سلام
تو دستوری که شما فرمودید ما چه جوری بایت را در پایگاه داده درج کنم ؟
دستور اینتسرت ارور میده؟
من میخواهم یک فایل ورد را در پایگاه داده ذخیره کنم و بعد نام فایل را در یک صفحه نمایش بدهم و وقتی کاربر روی نام کلیک کرد فایل اجرا شود.
عاجزانه خواهش میکنم جواب دهید

ebraham
چهارشنبه 30 مهر 1393, 12:21 عصر
سلام
برای ذخیره فایل پی دی اف در دیتابیس کدش چجور میشه ؟ vb.net

ممنون

Mani_rf
چهارشنبه 30 مهر 1393, 17:40 عصر
کلا برای ذخیره هر فایلی با هر پسوندی که باشه هیچ تفاوتی وجود نداره به همین روش عمل میشه. شما فایل رو تبدیل به آرایه ای از بایت ها میکنید و در دیتابیس ذخیره میکنید، بعد آرایه رو میخونید و تبدیل به فایل میکنی.
حالا چه عکس، چه فایل صوتی چه ای بوک و یا هرچیز دیگه. توی سایت بارها و بارها مطرح شده و پاسخ داده شده. لطفا برای اطلاعات بیشتر جستجو کنید.

ebraham
چهارشنبه 30 مهر 1393, 23:49 عصر
ولی کدی که به این طریق نوشتم اررو ترانکت میده میشه شما یه کد نمونه برام بزارید ؟ ممنون میشم

ebraham
چهارشنبه 30 مهر 1393, 23:51 عصر
sqlcon.Open()
cmd.Connection = sqlcon
Dim pdfBytes() As Byte = System.IO.File.ReadAllBytes("D:\leila\b.pdf")
AxAcroPDF1.LoadFile(openf.FileName)
cmd.CommandText = "insert into pict (pdf1)values(@pdf1)"
cmd = New SqlCommand("Insert into pict (pdf1 ) Values(@pdf1)", sqlcon)
cmd.Parameters.Add("@pdf1", SqlDbType.VarBinary).Value = pdfBytes
cmd.ExecuteNonQuery()
sqlcon.Close()

mm26363@yahoo.co.uk
چهارشنبه 27 آبان 1394, 06:40 صبح
ارور تراکییت به خاطر اندازه فیلد دیتابس با طول پارمتر ت هست که احتکالا کم هست