zoukankan
html css js c++ java
写了个文件上传操作的类
源代码如下:
/**/
///
<summary>
///
文件上传类
///
</summary>
public
class
UploadFile
{
public
string
UploadInfo;
//
文件上传的返回信息。
public
bool
UploadState;
//
文件上传的返回状态。
private
string
strFileType;
//
允许上传文件的类型。
private
int
intFileSize;
//
上传文件大小的最大长度。
private
string
strNewFileName;
//
上传后的文件名。
public
UploadFile()
{
strFileType
=
""
;
//
将允许上传的文件类型列表初始为空。
UploadInfo
=
"
NONE
"
;
//
将文件上传的返回信息初始为无。
UploadState
=
false
;
//
将文件上传的返回状态初始为假。
intFileSize
=
102400
;
//
默认上传文件大小的最大长度为100K。
}
/**/
///
<summary>
///
上传本地文件到服务器。
///
</summary>
///
<param name="strSaveDir">
在服务器端保存的物理路径。
</param>
///
<param name="HtmCtrlObjUploadFile">
上传的文件对象。
</param>
///
<returns></returns>
public
void
ExecUploadFile(
string
strSaveDir,HtmlInputFile HtmCtrlObjUploadFile)
{
if
(HtmCtrlObjUploadFile.PostedFile.ContentLength
==
0
)
//
判断是否有文件需要上传或所选文件是否为0字节。
{
UploadInfo
=
"
没有选择要上传的文件或所选文件大小为0字节
"
;
UploadState
=
false
;
return
;
//
返回文件上传状态和信息。
}
if
(HtmCtrlObjUploadFile.PostedFile.ContentLength
>
intFileSize)
//
限制要上传的文件大小(byte)。
{
UploadInfo
=
"
上传的文件超过限制大小(
"
+
(intFileSize
/
1024
).ToString()
+
"
K)
"
;
UploadState
=
false
;
return
;
//
返回文件上传状态和信息。
}
int
intFileExtPoint
=
HtmCtrlObjUploadFile.PostedFile.FileName.LastIndexOf(
"
.
"
);
string
strFileExtName
=
HtmCtrlObjUploadFile.PostedFile.FileName.Substring(intFileExtPoint
+
1
);
//
获取要上传的文件的后缀名。
if
(strFileType.ToUpper().IndexOf(strFileExtName.ToUpper().Trim())
==-
1
)
//
判断要上传的文件类型的是否在允许的范围内。
{
UploadInfo
=
"
不允许上传的文件类型(允许的类型:|
"
+
this
.GetUploadFileType()
+
"
)
"
;
UploadState
=
false
;
return
;
//
返回文件上传状态和信息
}
DateTime dteNow
=
DateTime.Now;
//
定义日期对象,为上传后的文件命名。
strNewFileName
=
dteNow.Year.ToString()
+
dteNow.Month.ToString()
+
dteNow.Day.ToString()
+
GetRandomStr(
8
)
+
"
.
"
+
strFileExtName;
//
随机地为上传后的文件命名。
HtmCtrlObjUploadFile.PostedFile.SaveAs(
this
.GetSaveDirectory(strSaveDir)
+
strNewFileName);
//
以新的文件名保存上传的文件到指定物理路径。
UploadInfo
=
"
文件上传成功
"
;
//
返回上传后的服务器端文件物理路径。
UploadState
=
true
;
}
/**/
///
<summary>
///
获取指定位数的随机数。
///
</summary>
///
<param name="RndNumCount">
随机数位数。
</param>
///
<returns></returns>
private
string
GetRandomStr(
int
RndNumCount)
{
string
RandomStr;
RandomStr
=
""
;
Random Rnd
=
new
Random();
for
(
int
i
=
1
;i
<=
RndNumCount;i
++
)
{
RandomStr
+=
Rnd.Next(
0
,
9
).ToString();
}
return
RandomStr;
}
/**/
///
<summary>
///
获取当前允许上传的文件类型。
///
</summary>
///
<returns>
返回包含所有的可上传文件类型集字符串,如为空则不允许任何类型的文件。
</returns>
public
string
GetUploadFileType()
{
return
strFileType;
}
/**/
///
<summary>
///
添加允许上传的文件类型。
///
</summary>
///
<param name="strAddFileType">
要添加的文件类型后缀名,可以用"|"号区别添加多个文件后缀名。
</param>
public
void
AddUploadFileType(
string
strAddFileType)
{
strFileType
+=
(strAddFileType
+
"
|
"
);
//
以“|”符号作为每个类型的分隔符。
}
/**/
///
<summary>
///
获取上传文件的限制大小。
///
</summary>
///
<returns>
返回上传文件的限制大小。
</returns>
public
int
GetUploadFileSize()
{
return
intFileSize;
}
/**/
///
<summary>
///
设置上传文件的限制大小。
///
</summary>
///
<param name="intSetFileSize">
上传文件的限制大小(KB)。
</param>
public
void
SetUploadFileSize(
int
intSetFileSize)
{
intFileSize
=
intSetFileSize
*
1024
;
//
将Byte换算为KB
}
/**/
///
<summary>
///
获取上传后的新文件名。
///
</summary>
///
<returns>
返回上传后的新文件名。
</returns>
public
string
GetUploadFileNewName()
{
return
strNewFileName;
}
/**/
///
<summary>
///
获取上传文件存放目录。
///
</summary>
///
<param name="DirectoryPath">
存放文件的物理路径。
</param>
///
<returns>
返回存放文件的目录。
</returns>
public
string
GetSaveDirectory(
string
DirectoryPath)
{
if
(
!
Directory.Exists(DirectoryPath))
//
判断当前目录是否存在。
{
Directory.CreateDirectory(DirectoryPath);
//
建立上传文件存放目录。
}
return
DirectoryPath;
}
}
调用方式:
CUploadImage.AddUploadFileType(
"
jpg|jpeg|gif|bmp|png
"
);
//
添加允许上传文件的类型。
CUploadImage.SetUploadFileSize(
300
);
//
设置上传文件大小(KB);
CUploadImage.ExecUploadFile(strUploadPath,inputFile);
//
上传所选文件。
if
(CUploadImage.UploadState)
//
判断文件是否上传成功。
{
DoSomeThing...
}
else
{
DoSomeThing...
}
查看全文
相关阅读:
IList和DataSet性能差别 转自 http://blog.csdn.net/ilovemsdn/article/details/2954335
jquery click嵌套 事件重复注册 多次执行的问题解决
IIS MVC 发布错误 403.14Forbidden Web 服务器被配置为不列出此目录的内容
利用contextmenu事件,自定义右键
js里面是没有Trim()这个方法的可以用以下的形式来判断是否输入的值为空
flash的TotalFrames显示undefined
复习重载
PHP访问父类中的方法
复习继承已有的类
PHP继承已有的类
原文地址:https://www.cnblogs.com/Random/p/730533.html
最新文章
jQuery JCrop插件的一个问题
web 打印,web打印控件的三种实现方法
float数据类型
Agile Manifesto
最全的CSS浏览器兼容问题整理(IE6.0、IE7.0 与 FireFox)(收藏)
Yii 的登录流程
Association, Aggregation and Composition
2011年度最受欢迎的50个Web 2.0网页设计素材集之二
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
30 +漂亮的jQuery菜单导航(二)
热门文章
移动设备对meta的定义
浅谈document.all与WEB标准
标准模式与怪异模式
document.all用法
CSS里常见的块级元素和行内元素
CSS3游戏集合
JS封装类或对象的最佳方案
js实现拖拽+碰撞+重力
语义化你的HTML标签和属性
Javascript继承两种形式详解
Copyright © 2011-2022 走看看