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

 

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

无论是上传图片(.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 + 1);//截取后缀
                string newPath = CheckFileName(splitName);//判断后缀名是否合法并赋予新的文件名

                if (!String.IsNullOrEmpty(newPath))
                {
                    //获取服务器的虚拟路径
                    string path = Server.MapPath("images/"+ newPath);
                    //将图片保存到指定文件夹 
                    fileUpload.PostedFile.SaveAs(path);
                    
                }
            } 
        }

 

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

 

 

posted @ 2013-10-25 11:18  Tonge  阅读(1083)  评论(0编辑  收藏  举报