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


محدود کردن حجم فایل پیوست در vb.net

محدود کردن حجم فایل پیوست در vb.net
در یک مقاله جداگانه، قبلا به نحوه قرار دادن فایل ضمیمه در VB.net، آنهم به صورتی که فایل اصلی در یک فولدر یا درایو در هر جایی ذخیره شود و فقط آدرس آن فایل در Table مربوطه در دیتابیس ذخیره شود. دوستان ما با اینکار از رشد بی رویه حجم دیتابیس در برنامه هایی مثل اتوماسیون اداری می توانیم جلوگیری می توانیم کنیم. به خوبی می دانید که برنامه هایی مثل همین اتوماسیون اداری به شدت مستعد رشد حجم در دیتابیس هستند چون روزانه کلی نامه و ایمیل توسط برنامه جابجا می شود و ضمن اینکه همین نامه ها و ایمیل ها فایل پیوست هم به احتمال خیلی زیاد دارند. نمی توانیم به کاربران Force کنیم که اصلا نباید فایلی را در پیوست نامه های قرار دهند، چون یکی از رسالت های همچین نرم افزاری در سازمان ها این است که کاغذ بازی و چرخش یک ورق برای جمع کردن امضا در بین واحدهای مختلف را از بین ببرد، کاربر تا جای ممکن از پشت میز تکان نخورد و هران چیزی که قرار است به دست کسی برساند، با نرم افزار آن را انجام دهد. اما در اینجا درست است که فقط Text در دیتابیس ذخیره می شود، اما هر چقدر هم که فضای ذخیره سازی فایل های Attachment در فولدر یا درایو ما زیاد باشد، باز هم در معرض حجیم شدن و پر شدن است و باید برای آن تدابیری هم اندیشید. مثلا فایل های ضمیمه در پس از پیوست شدن، ZIP کنیم، و یا اینکه برای فایل های ضمیمه محدودیت هایی در نظر بگیریم، مثلا نامه های داخلی کاربران نهایتا فایل با حجم 3 مگابایت را بتوانند ضمیمه کنند و برای ایمیل ها 6 مگابایت. البته این یک مثال است و شما هر طور که صلاح می دانید، می توانید آن را پیکربندی کنید. حالا اتوماسیون هم فقط یک برنامه ای بود که به دلیل پر کاربرد بودن در سازمان ها و شرکت ها، آن را مثال زدیم و گرنه برنامه های زیادی هستند که کاربران در حین انجام کار با ان این قابلیت به آنها در برنامه داده شده که بتوانند فایل را ضمیمه کنند.

نرم افزار سامانه مودیان راهکار
در اینجا برنامه قبلی را کمی ویرایش می کنیم و برای فایل های ضمیمه، یک محدودیت حجم هم قرار می دهیم. شما می توانید سورس را به زبان 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_ContentLength As Object
Dim file_ As New System.IO.FileInfo(FileToCopy)
file_ContentLength = "70000"
If (file_.Length > file_ContentLength) Then
MessageBox.Show("حجم فایل بیشتر از حد مجاز است", "حجم بیش از حد فایل", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If

''''''''''''''''''''''''''''''''''''''''''''''''''
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


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

Dim file_ContentLength As Object
Dim file_ As New System.IO.FileInfo(FileToCopy)
file_ContentLength = "70000"
If (file_.Length > file_ContentLength) Then
MessageBox.Show("حجم فایل بیشتر از حد مجاز است", "حجم بیش از حد فایل", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If



مقداری که برای متغیر file_ContentLength به صورت دستی در نظر گرفته 70000 می باشد، اما دوستان نکته ای که باید بدانید این است که این مقدار بر حسب بایت می باشد. یعنی در اینجا فقط و فقط فایل های مجاز را حجم نهایت 70000 بایت یا 70 کیلو بایت را می توانید آپلود و ضمیمه کنید و مقدار بیشتر از آن با پیغام خطای زیر مواجه خواهید شد:

محدود کردن حجم فایل پیوست در vb.net . آموزشگاه رایگان خوش آموز

در اینجا مقدار را ما دستی وارد کردیم، شما می توانید یک فرم تنظیمات در برنامه خودتان داشته باشید و مثلا مقادیر مجاز حجم فایل پیوست برای هر بخش برنامه را خودتان، یکبار برای همیشه تعیین کنید مثلا:
حجم فایل پیوست ایمیل= 3مگابایت
حجم فایل پیوست نامه داخلی= 5 مگابایت
و همینطور الی آخر، با اینکار قبل از اینکه فایل پیوست کاربر در محل تعیین شده شما(همان محلی که فایل های ضمیمه توسط برنامه ذخیره می شود) ذخیره شوند، به دلیل حجم بیش از حد مجاز فایل، از ذخیره آن جلوگیری به عمل آید.
بدین ترتیب در استفاده فضای ذخیره سازی هم تا حد امکان صرفه جویی به عمل خواهد آمد.

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

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

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


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