C#上传文件的一个实现
2006-09-11 21:56
337 查看
using System;
using System.Data;
using System.Data.SqlClient;
using CA.Components; //全部在组件名称空间下
namespace CA.Components
{
/// <summary>
/// General 的摘要说明。
/// 发布日期:2002-8-8 原作者:雷神
/// 此程序属模式小组 HTTP://WWW.AI361.COM/PROJECT/ /// 在sql2000,WIN2000s+.net+iis5中测试通过
/// </summary>
public class General
{
private string FilePath; //文件路径
//定义一个枚举用来存放文件的信息
public enum File
{
FILE_SIZE , //大小
FILE_POSTNAME, //
FILE_SYSNAME ,
FILE_ORGINNAME,
FILE_PATH
};
//构造函数
public general()
{
//在WEB.CONFIG中设定AppSettings["filepath"],用于存放文件的路径。
FilePath = System.Configuration.ConfigurationSettings.AppSettings["filepath"];
}
/// <summary>
/// 上传文件通用函数,此方法为静态,系统任何时候均可调用。
/// </summary>
/// <param name="file">参数为页面的FILE控件对象</param>
/// <returns></returns>
public static string[] UploadFile(HtmlInputFile file)
{
string[] arr = new String[5];
//通过系统时间生成文件名,此功能可以封闭掉,不过中文长文件名支持的不好。
string FileName = DateTime.Now.ToString().Replace(" ","").Replace(":","").Replace("-","");
string FileOrginName = file.PostedFile.FileName.Substring(file.PostedFile.FileName.LastIndexOf("//")+1);
if(file.PostedFile.ContentLength<=0)
return null;
string postFileName;
string path = new general().FilePath+"//";
try
{
int pos = file.PostedFile.FileName.LastIndexOf(".")+1;
postFileName = file.PostedFile.FileName.Substring(pos,file.PostedFile.FileName.Length-pos);
file.PostedFile.SaveAs(path+FileName+"."+postFileName);
}
catch(Exception exec)
{
throw(exec);
}
double unit = 1024;
double size = Math.Round(file.PostedFile.ContentLength/unit,2);
arr[(int)File.FILE_SIZE] = size.ToString();//文件大小
arr[(int)File.FILE_POSTNAME] = postFileName;//文件类型(文件后缀名)
arr[(int)File.FILE_SYSNAME] = FileName;//文件系统名
arr[(int)File.FILE_ORGINNAME] = FileOrginName;//文件原来的名字
arr[(int)File.FILE_PATH]=path+FileName+"."+postFileName;//文件路径
return arr;
//throw(new Exception(HtmlUtility.HtmlEncode(IDNO.PostedFile.FileName)));
}
}
}
using System.Data;
using System.Data.SqlClient;
using CA.Components; //全部在组件名称空间下
namespace CA.Components
{
/// <summary>
/// General 的摘要说明。
/// 发布日期:2002-8-8 原作者:雷神
/// 此程序属模式小组 HTTP://WWW.AI361.COM/PROJECT/ /// 在sql2000,WIN2000s+.net+iis5中测试通过
/// </summary>
public class General
{
private string FilePath; //文件路径
//定义一个枚举用来存放文件的信息
public enum File
{
FILE_SIZE , //大小
FILE_POSTNAME, //
FILE_SYSNAME ,
FILE_ORGINNAME,
FILE_PATH
};
//构造函数
public general()
{
//在WEB.CONFIG中设定AppSettings["filepath"],用于存放文件的路径。
FilePath = System.Configuration.ConfigurationSettings.AppSettings["filepath"];
}
/// <summary>
/// 上传文件通用函数,此方法为静态,系统任何时候均可调用。
/// </summary>
/// <param name="file">参数为页面的FILE控件对象</param>
/// <returns></returns>
public static string[] UploadFile(HtmlInputFile file)
{
string[] arr = new String[5];
//通过系统时间生成文件名,此功能可以封闭掉,不过中文长文件名支持的不好。
string FileName = DateTime.Now.ToString().Replace(" ","").Replace(":","").Replace("-","");
string FileOrginName = file.PostedFile.FileName.Substring(file.PostedFile.FileName.LastIndexOf("//")+1);
if(file.PostedFile.ContentLength<=0)
return null;
string postFileName;
string path = new general().FilePath+"//";
try
{
int pos = file.PostedFile.FileName.LastIndexOf(".")+1;
postFileName = file.PostedFile.FileName.Substring(pos,file.PostedFile.FileName.Length-pos);
file.PostedFile.SaveAs(path+FileName+"."+postFileName);
}
catch(Exception exec)
{
throw(exec);
}
double unit = 1024;
double size = Math.Round(file.PostedFile.ContentLength/unit,2);
arr[(int)File.FILE_SIZE] = size.ToString();//文件大小
arr[(int)File.FILE_POSTNAME] = postFileName;//文件类型(文件后缀名)
arr[(int)File.FILE_SYSNAME] = FileName;//文件系统名
arr[(int)File.FILE_ORGINNAME] = FileOrginName;//文件原来的名字
arr[(int)File.FILE_PATH]=path+FileName+"."+postFileName;//文件路径
return arr;
//throw(new Exception(HtmlUtility.HtmlEncode(IDNO.PostedFile.FileName)));
}
}
}
相关文章推荐
- [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器
- C#上传文件的一个实现
- 【C#网络编程系列】专题十一:实现一个基于FTP协议的程序—文件上传下载器
- [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器
- C#上传文件的一个实现
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- 一个简单的QQ隐藏图生成算法 通过jQuery和C#分别实现对.NET Core Web Api的访问以及文件上传
- [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器
- [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器
- [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器
- [每天一个demo]用c#实现简单的上传文件程序
- asp.net(c#)实现文件上传功能
- 一个简单的struts实现文件上传示例
- 点滴积累【C#】---C#实现上传word将路径保存到数据库,文件保存到服务器。并且按照名称读取服务器的word
- ASP.NET(C#)实现一次性上传多张图片(多个文件)
- ASP.NET(C#)实现一次性上传多张图片(多个文件)
- C# WinForm通过WebClient实现文件上传下载 (附源码)
- C# WinForm通过WebClient实现文件上传下载 (附源码)
- C#实现的文件上传下载工具类完整实例【上传文件自动命名】
- c# web fileUpload实现单文件上传