خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


قرار دادن فایل پیوست در vb.net

قرار دادن فایل پیوست در vb.net
در پروژه هایی که برنامه نوسی یا کدنویسی آن به عهده شماست بسیار نیاز به این پیدا می کنید که امکانی را در اختیار کاربران قرار دهید که بتوانند فایل یا فایل هایی برای رکورد پیوست کنند. در پروژه هایی که حساسیت آنها بالا باشد مثل اتوماسیون اداری و یا نرم افزارهای مالی این فایلهای ضمیمه را در دیتابیس ذخیره می کنند ولی پروژه هایی را هم بنده دیده ام که فایل های پیوست را در یک مسیر شبکه ای ذخیره می کنند و فقط نام و یا مسیر فایل + نام فایل را در دیتا بیس ذخیره می کنند. این کار مزایا و معایبی هم دارد مهمترین عیب ان این است که باید در تخصیص Permission ها و دسترسی ها برای آن پوشه یا مسیری که قرار است این فایل های پیوست را در آن ها ذخیره کنید بسیار دقت کنید چون اگر در انجام اینکار دقت کافی را به خرج ندهید هر کسی ممکن است به این فایل ها دسترسی داشته باشد و عیب بعدی آن مشکلاتی است که در تهیه بک آپ از دیتابیس به همراه دارد. به خوبی می دانید که برای برنامه ها نیاز است که بصورت روزانه از دیتابیس آنها در یک یا چند مرحله در بک آپ تهیه شود چون در شرایط اضطراری به این بک آپ ها نیاز است و اگر بک آپی وجود نداشته باشد پس با قید همه اطلاعات را هم بزنید. حالا اگر بک آپی هم ازدیتابیس گرفته شود فقط مسیر یا نام فایل ها که در دیتابیس وجود داشته بک آپ تهیه می شود و از خود فایل هایی که در ضمیمه قرار داده اید بک آپی تهیه نمی شود. پس حتما پس از بک آپ گیری از دیتابیس، از پوشه یا محلی که فایل های پیوست را ذخیره کرده اید هم یک بک آپ تهیه کنید. البته معایب دیگری هم وجود دارد که به نظر من این دو از مهمترین معایب این روش هستند. یکی از مهمترین مزیت های این روش این است که حجم دیتابیس به یکباره افزایش پیدا نمی کند. اگر شما تجربه کار با نرم افزارهایی مثل اتوماسیون اداری را داشته باشید به خوبی می دانید که تعدادی زیادی فایل، روزانه توسط کاربران در ضمیمه‌ی نامه ها قرار می گیرد. اگر همه این فایل ها در دیتابیس ذخیره شوند واقعا امنیت آنها خیلی بیشتر می شود ولی از طرفی حجم دیتابیس هم بیشتر می شود(چه بسا روزانه چندین گیگ به حجم دیتابیس اضافه شود). آنچیزی که قرار است در این مقاله به تشریح آن بپردازیم و کد مربوط به آن را در اختیار شما قرار دهیم این است که فایلهای پیوست را در یک مسیر شبکه ای یا در همان سیستم ذخیره کرده و نام و یا مسیر + نام را در دیتابیس ذخیره کنیم.

سیستم یکپارچۀ سازمانی راهکار
شما می توانید این کدها را به زبان VB.NET از اینجا دانلود کنید و یا کدها را در زیر مشاهده کنید:



Try

Dim filename As String

Dim OpenFileDialog1 As New OpenFileDialog
With OpenFileDialog1
Dim FileToCopy As String
Dim path As String = "D:\khoshamoz\"
.FileName = ""
.Filter = "all Files(*.zip;*.png;*.log;*.xlsx;*.xls;*.ico;*.pdf;*.docx;*.jpg;*.bmp;*.doc;*.txt;*.gip;*.jpeg;*.mp3;*.3jp;*.wav;*.docx;)|*.zip;*.png;*.log;*.xlsx;*.xls;*.ico;*.pdf;*.docx;*.jpg;*.bmp;*.doc;*.txt;*.gip;*.jpeg;*.mp3;*.3jp;*.wav;*.docx;"
.ShowDialog()
FileToCopy = .FileName
Dim filenameTest = System.IO.Path.GetFileName(FileToCopy)
filename = filenameTest
Dim file_ As New System.IO.FileInfo(FileToCopy)
''''''''''''''''''''''''''''''''''''''''''''''''''
Dim allow_send_pic() As String = {".jpg", ".zip", ".png", ".gif", ".ico", ".png", ".xls", ".xlsx", ".txt", ".docx", ".doc", ".pdf", ".jpeg", ".gip", ".bmp", ".mp3", ".3jp", ".wav", ".docx", ".pub"}
Dim Extension As String = System.IO.Path.GetExtension(filename)
If Array.IndexOf(allow_send_pic, Extension.ToLower()) = -1 Then
MsgBox("فایل انتخابی مجاز نیست")
Exit Sub
End If
If System.IO.File.Exists(FileToCopy) = True Then

While (System.IO.File.Exists(path + filename))
filename = "0" + filename
End While

System.IO.File.Copy(FileToCopy, path + filename)
MsgBox("فایل با موفقیت در پیوست ذخیره شد.", MsgBoxStyle.Information, "پیوست اشخاص")
Me.txtRowFileName.Text = String.Empty
Me.txtRowFileName.Text = filename

End If
End With

Catch ex As Exception
End Try


همانطور که مشاهده می کنید انجام اینکار کار ساد های است و شما فقط کافیست روی یک دکمه کلیک کنید تا این کدها اجرا شوند و با توجه به نوع فرمت فایل هایی که برای کاربران مجاز به انتخاب کرده اید آن را در مسیری که مشخص شده، کپی کنید. در این ما یک مسیر local را وارد کردیم اما شما می توانید یک مسیر شبکه ای را وارد کنید ولی باید دسترسی های لازم را در آن پوشه قرار داده باشید که برنامه بتواند فایل هایی را که کاربران انتخاب می کنند را در آنجا کپی کند و یا در زمانی که نیاز شد آن فایلها را بخواند.

نکته بعدی در خصوص این قسمت کد است:

If System.IO.File.Exists(FileToCopy) = True Then

While (System.IO.File.Exists(path + filename))
filename = "0" + filename
End While

System.IO.File.Copy(FileToCopy, path + filename)
MsgBox("فایل با موفقیت در پیوست ذخیره شد.", MsgBoxStyle.Information, "پیوست اشخاص")
Me.txtRowFileName.Text = String.Empty
Me.txtRowFileName.Text = filename

End If


کاری که این حلقه در این کد انجام می دهد این است که چنانچه کاربران یک فایل با نام تکراری را انتخاب کنند یک صفر به قبل آن اضافه می کند تا از تکراری شدن آن جلوگیری به عمل بیاید.
حالا خیلی ساده و راحت می توانید مقدار path + filename را در جدول مربوطه در دیتابیس ذخیره کنید و یا مثل همین مثال ما، Path از طریق کد و filename را در جدول مربوطه در دیتابیس ذخیره کند.
حالا پس از اینکه فایل ها را در مسیر شبکه ای ذخیره کردید، حالا کاربران باید بتانند این فایل را ببینند، مثلا فرض کنید به یک نام ای یک فایل همن پوست می شود و آن را رای شخص دیگری در اتوماسیون ارسال می کنند حالا آن شخصی که نامه به دست آن رسیده باید بتواند آن فایل پیوست را باز کرده و آن را مشاهده کند.
در ادامه می توانید کد مربوط به این بخش را مشاهده کنید البته این کد در همان فایل دانلود هم وجود داشت.

Try
If Me.txtRowFileName.Text = String.Empty Then Exit Sub
Process.Start("D:\khoshamoz\" & txtRowFileName.Text)
Catch ex As Exception
MsgBox("فایل مورد نظر یافت نشد", MsgBoxStyle.Critical, "خطا")

End Try

همانطور که مشاهده می کنید دقیقا مسیر خواندن فایلها همان مسیری بود که فایل ها در آنجا ذخیره شده بودند حالا فقط کافیست کاربر روی دکمه مربوط به مشاهده فایل ضمیمه کلیک کند تا فایل پیوست نمایش داده شود.

اگر شما از زبان های برنامه نویسی دیگری هم استفاده می کنید خیلی ساده می توانید این کد را به زبان مورد نظرتان Convert کرده و از ان استفاده کنید. و در آخر امیدواریم که از این آموزش لذت برده باشید و به کارتان بیاید. اگر شما با روش های دیگری آشنایی دارید باعث خوشحالی ماست که آن را با ما و سایر دوستانتان در قسمت نظرات کاربران به اشتراک قرار دهید.


نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز