思路解析:
- 上传的文件夹是否存在 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);
保存文件