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方法中的进行扩展。