般来说,使用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>