1.上传图片,即限制上传文件的后缀名为.jpg、.png、.gif等
if (FileUpload1.HasFile == true)
{
string fileName = FileUpload1.FileName;
string savePath = Server.MapPath("~/upload") + "\\" + fileName;
string fileNameWithoutExt = fileName.Substring(0, fileName.LastIndexOf('.'));
//Response.Write(fileNameWithoutExt);
string ext = Path.GetExtension(savePath).ToLower();
if (ext == ".jpg" || ext == ".png" || ext == ".bmp" || ext == ".gif" || ext == ".tif" || ext == ".jpeg")
{
if (File.Exists(savePath))
{
//提示上传失败
//提示用户改名 关于有文件重名网上也有其他方法,例如自动改为当前时间的 年月日时分秒毫秒
Response.Write("请改名后再上传");
return;
}
FileUpload1.SaveAs(savePath);
//可以直接将这个savePath保存到数据库,获取文件名的方法为 Path.GetFileName()
//如果没有重名,直接保存文件名也是可以的,显示照片时 VirtualPathUtility.ToAbsolute("~/upload") + "/" + 文件名(不带路径)
//提示上传成功
Response.Write("Success");
}
else
{
Response.Write("Failed");
//提示上传失败
}
2.限制上传文件的大小
//对上传文件的大小进行检测,限定文件最大不超过1M
if (FileUpload1.PostedFile.ContentLength > 1024000)
{
fileOk = false;
}
3.遇到重名的处理
①提示同名,需要用户重新命名
②利用时间的年月日时分秒毫秒来产生文件名
③目标文件夹:File
临时文件夹:Temp
判断在File文件夹下有无同名,
有,用javascript询问用户,记录下用户的选择,
上传到Temp文件夹,
转到另一页面,获取用户的选择,
如果拥护选择了覆盖 将文件移动到File下,否则删除文件
④加个checkBox(是否覆盖同名文件)。
如果用户未选择“覆盖checkBox”,并且有同名文件时。那么直接提示“上传失败,有同名文件存在,请改名后重新上传或选择覆盖上传”。
如果允许自动重命名上传,遇到同名文件时,则可以取当前日期+时间+文件扩展名(假如有的话),作为文件名,再上传文件。
⑤。。。