ASP.NET中的FileUpload文件上传控件的使用

时间:2021-12-17 22:54:09

本篇文章教大家如何将客户端的图片或者文件上传到服务器:

无论是上传图片(.jpg .png .gif等等) 文档(word excel ppt 等等)。

第一步:放入以下三个控件 Image控件,FileUpload控件,和一个Button控件。

<asp:Image ID="imgPhoto" ImageUrl="~/images/Users/noperson.jpg" style="border:1px" alt="photo" width="105px" height="118px"   runat="server" />
<asp:FileUpload  ID="fileUpload" runat="server" BorderWidth="0" Width="51px" /> 
<asp:Button Text="上传" ID="btnUpload" runat="server" onclick="btnUpload_Click" />

第二步:上传指定格式的文件或者图片。

1)首先我们写一个方法来检查上传文件的格式,这里我们用上传图片来举例。

在此方法中,为防止文件重名,我们对所有的文件在上传之前都进行重命名后在进行保存。

    /// <summary>
/// 检查上传图片的格式
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
protected string CheckFileName(string fileName)
{
//返回指定路径文件的扩展名 并转换成小写
string fileType = Path.GetExtension(fileName).ToLower(); //判断文件的后缀名
if (fileType == ".jpg" || fileType == ".jpeg" || fileType == ".png" || fileType == ".gif")
{
//返回指定路径不具有扩展名的文件名
string oldName = Path.GetFileNameWithoutExtension(fileName);
//使用时间来重新命名图片 为了避免重名
string newName = DateTime.Now.ToFileTime() + fileType;
return newName;
}
else
{
return null;
}
}

2) 上传按钮 Button 的 OnClick 事件。

/// <summary>
/// 上传按钮事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnUpload_Click(object sender, EventArgs e)
{
//检查是否选中文件
if (fileUpload.HasFile)
{
//获取上传的路径
string fileName = fileUpload.FileName; //截取上传文件的后缀名
int position = fileName.LastIndexOf("\\");//截取.的位置
string splitName = fileName.Substring(position + );//截取后缀
string newPath = CheckFileName(splitName);//判断后缀名是否合法并赋予新的文件名 if (!String.IsNullOrEmpty(newPath))
{
//获取服务器的虚拟路径
string path = Server.MapPath("images/"+ newPath);
//将图片保存到指定文件夹
fileUpload.PostedFile.SaveAs(path); }
}
}

如果想上传其他的文件,可在CheckFileName方法中的进行扩展。