思路解析:
- 上传的文件夹是否存在 Directory.Exists();
- 是否为空文件
- 文件是否可能存在重名(对上传文件重命名)
- 如何指定上传文件类型,判定文件格式(看文件的扩展名)
- 上传文件大小限制
- 未提交按钮添加客户端的判断,误操作
代码
protected void btnFileUp_Click(object sender, EventArgs e)
{
//1、上传的文件夹是否存在 Directory.Exists();
//2、是否为空文件
//3、文件是否可能存在重名(对上传文件重命名)
//4、如何指定上传文件类型,判定文件格式(看文件的扩展名)
//5、上传文件大小限制
//6、未提交按钮添加客户端的判断,误操作
string pathstr = "";
string fileName = "";
pathstr = Server.MapPath("/UpLoads/");
//判断存储位置是否存在
if (!Directory.Exists(pathstr))
{
Directory.CreateDirectory(pathstr);
}
if (fupImg.HasFile) //判断文件是否为空
{
//文件格式安全
fileName = fupImg.FileName;
string LastName = Path.GetExtension(fileName).ToLower();
//判断文件格式
if (LastName != ".gif" & LastName != ".png" & LastName != ".jpg")
{
Label1.Text = "上传失败,文件类型不正确!";
}
else
{
if (fupImg.FileContent.Length<=2*1024*1024)
{
//重命名
fileName = DateTime.Now.Ticks.ToString() + fileName;
pathstr = pathstr + fileName;
//上传
fupImg.SaveAs(pathstr);
Label1.Text = "上传成功<p/>";
Label1.Text += "<img style='width:500px;height:100%' src='../UpLoads/" + fileName + "'/>";
}
else{
Label1.Text = "上传失败,图片过大,应小于2M";
}
}
}
else {
Label1.Text = "上传文件不存在,请选择要上传的文件!";
}
}
总结:
1、sveret.Map()项目根目录
pathstr = Server.MapPath("/UpLoads/"); 指定上传文件的路径为根目录下的UpLoads文件夹中。
2. Directory.Exists(pathstr)
判断上传的文件夹是否存在
3. fileName = fupImg.FileName;
得到上传的文件的文件名
4. string LastName = Path.GetExtension(fileName).ToLower();
得到文件的后缀名
5. fupImg.FileContent.Length<=210241024
控制文件上传的大小
7. fupImg.SaveAs(pathstr);
保存文件