ASP.NET实现文件上传

本文实例为大家分享了ASP.NET实现文件上传的具体代码,供大家参考,具体内容如下

.NET中C/S和B/S上传文件不同

B/S中文件上传和C/S中的文件上传性质完全不一样

在C/S中文件上传基本上的原理是:将客户端计算机上的目标文件通过Socket网络将文件发送至目标服务器端计算机,然后将接受到的数据转换为原始文件

文件–转成字节流–发送到服务器–将字节流转成文件–保存

而B/S中文件上传指的是在客户端浏览器上,将目标文件选择好之后,通过网络将文件发送至目标服务器计算机,然后将接收到的文件保存在服务器计算机上。

B/S上传文件

ASP.NET实现文件上传_第1张图片

页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="UpLoadFileDemo.WebForm1" %>




    


    
       
            请选择要上传的文件:                                
   

事件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
namespace UpLoadFileDemo
{
   public partial class WebForm1 : System.Web.UI.Page
   {
       protected void Page_Load(object sender, EventArgs e)
       {

       }

       protected void btnUpload_Click(object sender, EventArgs e)
       {
           //【1】判断文件是否存在
           if (fileup.HasFile)
           {
               //【2】获取文件的大小,判断是否符合设置要求
               double fileLength = fileup.FileContent.Length / (1024.0*1024.0);
               //获取配置文件中对上传文件大小的限制
               double limeitLength = Convert.ToDouble(ConfigurationManager.AppSettings["fileMaxLength"])/1024.0;
               if (fileLength>limeitLength)
               {
                   lblMsg.Text = $"上传文件不能超过{limeitLength}MB";
                   return;
               }
               // 【3】获取文件名,判断文件扩展名是否符合要求
               string fileName = fileup.FileName;
               //判断文件是否exe文件
               if (fileName.Substring(fileName.LastIndexOf(".")).ToLower()==".exe")
               {
                   lblMsg.Text = "不能上传应用程序";
                   return;
               }
               //【4】修改文件名称
               //一般情况下,上传的文件服务器中保存时不会采取原文件名,因为客户端用户很庞大,要保证每个用户端上传文件不能被覆盖
               fileName = DateTime.Now.ToString("yyyyMMddhhmmssms")+"_"+fileName; //年月日时分秒毫秒_原文件名 防止文件绝对覆盖
               //【5】获取服务器中存储文件的路径
               //"~"代表应用程序的根目录,从服务器的根目录找  
               //"~" Shift键+左上角的"`"键
               string path = Server.MapPath("~/UpFile");
               //【6】上传文件
               try
               {
                   fileup.SaveAs(path+"/"+fileName);//参数:要上传到的文件完整路径,路径+"/"+文件名
                   lblMsg.Text = "文件上传成功";
               }
               catch (Exception ex)
               {
                   lblMsg.Text = $"文件上传失败{ex.Message}";
               }

           }
       }
   }
}

配置文件:



  
    
    
  
  
    
    
    
  
  
    
      
      
    
  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(ASP.NET实现文件上传)