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...
}
查看全文
相关阅读:
BZOJ 1568: [JSOI2008]Blue Mary开公司
BZOJ 3165: [Heoi2013]Segment
BZOJ 2733: [HNOI2012]永无乡
BZOJ 4631: 踩气球
BZOJ 4530: [Bjoi2014]大融合
BZOJ 4919: [Lydsy1706月赛]大根堆
BZOJ 5442: [Ceoi2018]Global warming
BZOJ 4027: [HEOI2015]兔子与樱花
BZOJ 5441: [Ceoi2018]Cloud computing
php的抓取
原文地址:https://www.cnblogs.com/Random/p/730533.html
最新文章
[bzoj3585] Rmq Problem / mex
[bzoj3809]Gty的二逼妹子序列/[bzoj3236][Ahoi2013]作业
[HNOI2016]序列(莫队,RMQ)
[Usaco2009 Nov]lights(高斯消元)
day5.流程控制及while单项循环
day4. 运算符
day3. 六大标准数据类型的类型转换
day1. python注释及变量
day2. 六大基本数据类型简介
LeetCode-Clone Graph
热门文章
LeetCode-Container With Most Water
LeetCode-Word Search
LeetCode-Single Number
LeetCode-Jump Game
LeetCode-Length of Last Word
LeetCode-Rotate List
LeetCode-Subsets
LeetCode-Trapping Rain Water
C++类型转换[转]
BZOJ 1606: [Usaco2008 Dec]Hay For Sale 购买干草
Copyright © 2011-2022 走看看