https://edu.csdn.net/course/detail/30867

/*
般来说,使用FileUpload控件上传文件一般有如下几个步骤:
(1)利用HasFile属性判断是否上传了文件。
(2)在服务器上指定一个物理路径,并检查这个物理路径是否存在,如果不存在先创建
(3)指定上传文件在服务器上的上传路径,利用Save()保存上传的文件,这一步还可以做一些其它检查工作,比如检查上传的文件是否符合要求或文件内容大小是否符合要求
(4)将相对路径或者URL地址保存起来,以便客户访问下载
*/

protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)//是否上传文件
{
lblMsg.Text = “有文件”;
//有文件,继续操作;
//Server.MapPath():获取当前项目的路径;;
//DateTime.Now.ToString(参数):参数为需要指定的时间格式;
String fileName =Server.MapPath("\photo\")+DateTime.Now.ToString(“yyyyMMddhhmmss”)+ FileUpload1.FileName;
//解决问题:文件名相同,后面会把前面的给覆盖掉;
//思路:1.随机数;复杂的函数(字符+数字)
//2.利用时间、随机数;
lblMsg.Text = DateTime.Now.ToString();
//lblMsg.Text += “–>”+fileName;
//lblMsg.Text += “====” + FileUpload1.PostedFile.FileName;
//利用SaveAs;放到E:,但是你的客户没有E:
//FileUpload1.SaveAs(“e:\”+fileName);
FileUpload1.SaveAs(fileName);
}
else {
lblMsg.Text = “没有文件”;
}
}

为了实现上传之后,即时预览图片,在后面增加一个上传按钮,参考代码如下:
if (FileUpload1.HasFile) {
//有文件就可以上传,并且显示;
String fileName =DateTime.Now.ToString(“yyyyMMddhhmmss”) + FileUpload1.FileName;
FileUpload1.SaveAs(Server.MapPath("\img\") + fileName);
img1.Src = “./img/”+fileName;
}

<system.web>

  <httpRuntime requestValidationMode="2.0" maxRequestLength="3072" ></httpRuntime>

  <!--单位:KB 3072=3MB   默认是4MB,最大支持2GB-->

 </system.web><system.webServer>

 <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="2147483648" />
        <!--单位:字节B  2147483648=2 GB 默认是4MB,最大支持2GB-->
      </requestFiltering>
    </security></system.webServer>