//Visit http://www.laptrinhdotnet.com for more ASP.NET Tutorials
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Diagnostics;
using System.Web.UI;
using System.Web;
using System.Web.UI.WebControls;
namespace RestrictSizeofFileUpload
{
public partial class _Default : System.Web.UI.Page
{
#region"Private Members"
private stringFilePath = "";
private longRestrictFileSize = 2;
private longRestrictFolderSize = 100;
#endregion
#region"Private Methods"
public longGetFolderSize(string DirPath, bool IncludeSubFolders = true)
{
DirectoryInfo objDir = newDirectoryInfo(DirPath);
DirectoryInfo objFolder = null;
longTotalSize = 0;
FileInfo objFileInfo = null;
foreach (FileInfoobjFileInfo_loopVariable in objDir.GetFiles())
{
objFileInfo = objFileInfo_loopVariable;
TotalSize += objFileInfo.Length;
}
if (IncludeSubFolders)
{
foreach (DirectoryInfoobjFolder_loopVariable inobjDir.GetDirectories())
{
objFolder = objFolder_loopVariable;
TotalSize += GetFolderSize(objFolder.FullName);
}
}
return TotalSize;
}
protected stringUploadFile(FileUpload file)
{
string fileName = null;
string fileExtension = "";
fileExtension = Path.GetExtension(file.FileName).Replace(".", "");
fileName = file.FileName.Substring(file.FileName.LastIndexOf("\\\\") + 1);
fileName = fileName.Substring(0, fileName.LastIndexOf(fileExtension)) + fileExtension;
FilePath = FilePath + fileName;
file.SaveAs(FilePath);
return fileName;
}
private voidSetFilePath()
{
FilePath = MapPath("~/Upload/");
if (!Directory.Exists(FilePath))
{
Directory.CreateDirectory(FilePath);
}
}
#endregion
#region"Event Handles"
protected voidPage_Load(object sender, System.EventArgs e)
{
try
{
if (!IsPostBack)
{
lblAllowed.Text = "Allowed only max " + RestrictFileSize + " MB to upload";
}
}
catch
{
}
}
protected voidcmdUpload_Click(object sender, System.EventArgs e)
{
if (Page.IsValid)
{
try
{
SetFilePath();
if (FileUpload.HasFile)
{
long FolderSize = 0;
FolderSize = (GetFolderSize(FilePath, true) / 1024) / 1024;
if (FolderSize < RestrictFolderSize)
{
//1MB=1024KB
long filesize = ((FileUpload.PostedFile.ContentLength) / 1024) / 1024;
if (filesize < RestrictFileSize)
{
UploadFile(FileUpload);
lblMessage.Text = "File uploaded successfully.";
lblMessage.ForeColor = System.Drawing.Color.Green;
lblMessage.Visible = true;
}
else
{
lblMessage.Text = "You are allowed to upload more then "+ RestrictFileSize + " MB.";
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Visible = true;
}
}
else
{
lblMessage.Text = "The File Exceeds The Amount Of Disk Space You Currently Have Available.";
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Visible = true;
}
}
}
catch
{
}
}
}
protected voidvalFile_ServerValidate(object source, ServerValidateEventArgs args)
{
if (FileUpload.PostedFile != null)
{
if (FileUpload.PostedFile.ContentLength > 0)
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}
}
#endregion
}
}