publicclassFileHepler
{
/// <summary>
/// 上传一个文件
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
publicstaticFileModel RequestFile(stringkey,boolisUsed =false)
{
HttpPostedFile file = HttpContext.Current.Request.Files[key];
if(isUsed)
{
returnGetFileModel1(file);
}
returnGetFileModel(file);
}
publicstaticFileModel SaveFile(stringkey,stringsaveUrl,boolisChange=false,boolisUsed =false)
{
HttpPostedFile file = HttpContext.Current.Request.Files[key];
FileModel model =newFileModel();
try
{
if(isChange)
{
saveUrl = saveUrl + file.FileName;
}
else
{
if(Path.GetExtension(file.FileName) != Path.GetExtension(saveUrl))
{
saveUrl = saveUrl.Replace(Path.GetExtension(saveUrl), Path.GetExtension(file.FileName));
}
}
stringurl = HttpContext.Current.Request.MapPath(saveUrl);
file.SaveAs(url);
if(isUsed)
{
model = GetFileModel1(file);
}
else
{
model = GetFileModel(file);
}
model.FileOldUrl = saveUrl;
model.FileUrl = url;
}
catch(Exception ex)
{
model.Flag =false;
model.Result = ex.Message;
}
returnmodel;
}
publicstaticFileModel SaveFirstFile(stringsaveUrl,boolisChange =false,boolisUsed =false)
{
HttpPostedFile file = HttpContext.Current.Request.Files[0];
FileModel model =newFileModel();
try
{
if(isChange)
{
saveUrl = saveUrl + file.FileName;
}
else
{
if(Path.GetExtension(file.FileName) != Path.GetExtension(saveUrl))
{
saveUrl = saveUrl.Replace(Path.GetExtension(saveUrl), Path.GetExtension(file.FileName));
}
}
stringurl = HttpContext.Current.Request.MapPath(saveUrl);
file.SaveAs(url);
if(isUsed)
{
model = GetFileModel1(file);
}
else
{
model = GetFileModel(file);
}
model.FileOldUrl = saveUrl;
model.FileUrl = url;
}
catch(Exception ex)
{
model.Flag =false;
model.Result = ex.Message;
}
returnmodel;
}
publicstaticFileModel SaveFile(HttpPostedFile _file,stringsaveUrl,boolisChange =false,boolisUsed =false)
{
HttpPostedFile file = _file;
FileModel model =newFileModel();
try
{
if(isChange)
{
saveUrl = saveUrl + file.FileName;
}
else
{
if(Path.GetExtension(file.FileName) != Path.GetExtension(saveUrl))
{
saveUrl = saveUrl.Replace(Path.GetExtension(saveUrl), Path.GetExtension(file.FileName));
}
}
stringurl = HttpContext.Current.Request.MapPath(saveUrl);
file.SaveAs(url);
if(isUsed)
{
model = GetFileModel1(file);
}
else
{
model = GetFileModel(file);
}
model.FileOldUrl = saveUrl;
model.FileUrl = url;
}
catch(Exception ex)
{
model.Flag =false;
model.Result = ex.Message;
}
returnmodel;
}
publicstaticList<FileModel> SaveFileList(intfileNum,stringsaveUrl,boolisChange =false,boolisUsed =false)
{
List<FileModel> filelist =newList<FileModel>();
for(inti = 0; i < fileNum; i++)
{
HttpPostedFile file = HttpContext.Current.Request.Files[i];
FileModel model =newFileModel();
try
{
if(isChange)
{
saveUrl = saveUrl + file.FileName;
}
else
{
if(Path.GetExtension(file.FileName) != Path.GetExtension(saveUrl))
{
saveUrl = saveUrl.Replace(Path.GetExtension(saveUrl), Path.GetExtension(file.FileName));
}
}
stringurl = HttpContext.Current.Request.MapPath(saveUrl);
file.SaveAs(url);
if(isUsed)
{
model = GetFileModel1(file);
}
else
{
model = GetFileModel(file);
}
model.FileOldUrl = saveUrl;
model.FileUrl = url;
}
catch(Exception ex)
{
model.Flag =false;
model.Result = ex.Message;
}
filelist.Add(model);
}
returnfilelist;
}
/// <summary>
/// 上传多个文件,通过文件索引获取
/// </summary>
/// <param name="fileNum"></param>
/// <returns></returns>
publicstaticList<FileModel> RequestFileList(intfileNum,boolisUsed =false)
{
List<FileModel> filelist =newList<FileModel>();
for(inti = 0; i < fileNum; i++)
{
HttpPostedFile file = HttpContext.Current.Request.Files[i];
if(file !=null)
{
FileModel model =newFileModel();
if(isUsed)
{
model = GetFileModel1(file);
}
else
{
model = GetFileModel(file);
}
filelist.Add(model);
}
}
returnfilelist;
}
publicstaticList<FileModel> RequestFileList2(intfileNum,boolisUsed =false)
{
List<FileModel> filelist =newList<FileModel>();
for(inti = 0; i < fileNum; i++)
{
HttpPostedFile file = HttpContext.Current.Request.Files[i];
if(file !=null)
{
FileModel model =newFileModel();
if(isUsed)
{
model = GetFileModel1(file);
}
else
{
model = GetFileModel(file);
}
filelist.Add(model);
}
else
{
break;
}
}
returnfilelist;
}
publicstaticFileModel RequestFirstFile(boolisUsed =false)
{
FileModel model =newFileModel();
HttpPostedFile file = HttpContext.Current.Request.Files[0];
if(file !=null)
{
if(isUsed)
{
model = GetFileModel1(file);
}
else
{
model = GetFileModel(file);
}
}
returnmodel;
}
publicstaticFileModel GetFileModel(HttpPostedFile file)
{
FileModel model =newFileModel();
model.FileName = file.FileName;
model.FileSingleName = Path.GetFileNameWithoutExtension(file.FileName);
model.FileExt = Path.GetExtension(file.FileName).Replace(".","");
model.FileSize = file.ContentLength;
model.FileStream = file.InputStream;
model.NewFile = file;
if(file ==null)
{
returnnull;
}
intFileLen;
FileLen = file.ContentLength;
System.IO.Stream MyStream;
byte[] bytes =newbyte[FileLen];
MyStream = file.InputStream;
MyStream.Read(bytes, 0, FileLen);
MyStream.Close();
MyStream.Dispose();
model.FileByte = bytes;
returnmodel;
}
publicstaticFileModel GetFileModel1(HttpPostedFile file)
{
FileModel model =newFileModel();
model.FileName = file.FileName;
model.FileSingleName = Path.GetFileNameWithoutExtension(file.FileName);
model.FileExt = Path.GetExtension(file.FileName).Replace(".","");
model.FileSize = file.ContentLength;
model.FileStream = file.InputStream;
model.NewFile = file;
if(file ==null)
{
returnnull;
}
intFileLen;
FileLen = file.ContentLength;
System.IO.Stream MyStream;
byte[] bytes =newbyte[FileLen];
MyStream = file.InputStream;
MyStream.Read(bytes, 0, FileLen);
model.NewStream = MyStream;
model.FileByte = bytes;
returnmodel;
}
publicstaticDataTable GetExcelDatatable(stringfileUrl)
{
//office2007之前 仅支持.xls
//const string cmdText = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;IMEX=1';";
//支持.xls和.xlsx,即包括office2010等版本的 HDR=No代表第一行是标题,不是数据;Yes为数据
stringcmdText ="Provider=Microsoft.Ace.OleDb.12.0;Data Source={0};Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";
// string cmdText = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;IMEX=1'";
DataTable dt =null;
//建立连接
OleDbConnection conn =newOleDbConnection(string.Format(cmdText, fileUrl));
//打开连接
if(conn.State == ConnectionState.Broken || conn.State == ConnectionState.Closed)
{
conn.Open();
}
//获取所有的sheet的名称 即多个表格数据
DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);
//获取Excel的第一个Sheet名称
stringsheetName = schemaTable.Rows[0]["TABLE_NAME"].ToString().Trim();
//查询sheet中的数据
stringstrSql ="select * from ["+ sheetName +"]";
OleDbDataAdapter da =newOleDbDataAdapter(strSql, conn);
DataSet ds =newDataSet();
da.Fill(ds);
dt = ds.Tables[0];
da.Dispose();//释放资源 以免影响后面对excel操作
dt.Dispose();
ds.Dispose();
returndt;
}
publicstaticDataTable GetExcelDatatable1(stringfileUrl)
{
//office2007之前 仅支持.xls
//const string cmdText = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;IMEX=1';";
//支持.xls和.xlsx,即包括office2010等版本的 HDR=No代表第一行是标题,不是数据;Yes为数据
stringcmdText ="Provider=Microsoft.Ace.OleDb.12.0;Data Source={0};Extended Properties='Excel 12.0; HDR=No; IMEX=1'";
// string cmdText = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;IMEX=1'";
DataTable dt =null;
//建立连接
OleDbConnection conn =newOleDbConnection(string.Format(cmdText, fileUrl));
//打开连接
if(conn.State == ConnectionState.Broken || conn.State == ConnectionState.Closed)
{
conn.Open();
}
//获取所有的sheet的名称 即多个表格数据
DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);
//获取Excel的第一个Sheet名称
stringsheetName = schemaTable.Rows[0]["TABLE_NAME"].ToString().Trim();
//查询sheet中的数据
stringstrSql ="select * from ["+ sheetName +"]";
OleDbDataAdapter da =newOleDbDataAdapter(strSql, conn);
DataSet ds =newDataSet();
da.Fill(ds);
dt = ds.Tables[0];
da.Dispose();//释放资源 以免影响后面对excel操作
dt.Dispose();
ds.Dispose();
returndt;
}
publicstaticDataSet GetExcelDataSet(stringfileUrl)
{
//office2007之前 仅支持.xls
//const string cmdText = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;IMEX=1';";
//支持.xls和.xlsx,即包括office2010等版本的 HDR=No代表第一行是标题,不是数据;Yes为数据
stringcmdText ="Provider=Microsoft.Ace.OleDb.12.0;Data Source={0};Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";
// string cmdText = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;IMEX=1'";
DataSet fileds =null;
//建立连接
OleDbConnection conn =newOleDbConnection(string.Format(cmdText, fileUrl));
//打开连接
if(conn.State == ConnectionState.Broken || conn.State == ConnectionState.Closed)
{
conn.Open();
}
//获取所有的sheet的名称 即多个表格数据
DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);
for(inti = 0; i < schemaTable.Rows.Count; i++)
{
//获取Excel的第一个Sheet名称
stringsheetName = schemaTable.Rows[i]["TABLE_NAME"].ToString().Trim();
//查询sheet中的数据
stringstrSql ="select * from ["+ sheetName +"]";
OleDbDataAdapter da =newOleDbDataAdapter(strSql, conn);
DataSet ds =newDataSet();
da.Fill(ds);
fileds.Tables.Add(ds.Tables[0]);
da.Dispose();//释放资源 以免影响后面对excel操作
fileds.Dispose();
ds.Dispose();
}
returnfileds;
}
publicstaticDataSet GetExcelDataSet1(stringfileUrl)
{
//office2007之前 仅支持.xls
//const string cmdText = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;IMEX=1';";
//支持.xls和.xlsx,即包括office2010等版本的 HDR=No代表第一行是标题,不是数据;Yes为数据
stringcmdText ="Provider=Microsoft.Ace.OleDb.12.0;Data Source={0};Extended Properties='Excel 12.0; HDR=No; IMEX=1'";
// string cmdText = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;IMEX=1'";
DataSet fileds =null;
//建立连接
OleDbConnection conn =newOleDbConnection(string.Format(cmdText, fileUrl));
//打开连接
if(conn.State == ConnectionState.Broken || conn.State == ConnectionState.Closed)
{
conn.Open();
}
//获取所有的sheet的名称 即多个表格数据
DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);
for(inti = 0; i < schemaTable.Rows.Count; i++)
{
//获取Excel的第一个Sheet名称
stringsheetName = schemaTable.Rows[i]["TABLE_NAME"].ToString().Trim();
//查询sheet中的数据
stringstrSql ="select * from ["+ sheetName +"]";
OleDbDataAdapter da =newOleDbDataAdapter(strSql, conn);
DataSet ds =newDataSet();
da.Fill(ds);
fileds.Tables.Add(ds.Tables[0]);
da.Dispose();//释放资源 以免影响后面对excel操作
fileds.Dispose();
ds.Dispose();
}
returnfileds;
}
}
publicclassFileModel
{
publicbyte[] FileByte {get;set; }
publicstringFileName {get;set; }
publicstringFileSingleName {get;set; }
publicstringFileExt {get;set; }
publiclongFileSize {get;set; }
publicStream FileStream {get;set; }
publicStream NewStream {get;set; }
publicboolFlag {get;set; } =true;
publicstringResult {get;set; }
publicstringFileUrl {get;set; }
publicstringFileOldUrl {get;set; }
publicHttpPostedFile NewFile {get;set; }
}
ASP.NET文件操作帮助类
最新推荐文章于 2026-07-02 00:18:56 发布
153

被折叠的 条评论
为什么被折叠?



