I can 前端-08 服务器控件之上传

在Toolbox界面提供了各式的控件,叫服务器控件,和C/S的开发模式很像

Setp1 上传配置

Web.config中配置

1 设置允许请求的最大字节数

 <system.web>
    <!--设置请求的最大字节数(默认是4096,单位:KB)-->
    <httpRuntime maxRequestLength="40960"/>
</system.web>

2 设置上传的最大字节数

<appSettings>
    <!--预设30M,配置上传文件最大字节数,单位KB-->
    <add key="PhysicsObjectLength" value="30720"/>
</appSettings>  

3 设置上传路径

    根目录新建一个文件夹UploadFiles

Setp2 视图

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

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
     请选择要上传的文件:<asp:FileUpload ID="ful" runat="server"/> 
     <br />
     <asp:Button ID="btnUpLoad" runat="server" Text="开始上传" OnClick="btnUpLoad_Click" />
     <br />
     <asp:Literal ID="ltaMsg" runat="server"></asp:Literal>
    </div>
    </form>
</body>
</html>

Setp3 后端

protected void btnUpLoad_Click(object sender, EventArgs e)
{
    //判断文件是否存在
    if (!this.ful.HasFile) return;

    //获取文件大小,判断是否符合设置要求(变成MB)
    double fileLength = this.ful.FileContent.Length/(1024.0*1024.0);
   //获取配置文件中上传文件的限制大小
   double limitedLength = Convert.ToDouble(System.Configuration.ConfigurationManager.AppSettings["PhysicsObjectLength"]);
   limitedLength = limitedLength / 1024.0;

   //判断实际文件大小是否符合要求
   if (fileLength > limitedLength)
   {
       this.ltaMsg.Text = "上传的文件超过了3M";
       this.ltaMsg.Text = 
       "<script type='text/javascript'>" +
                    "alert('上传文件最大不能超过'" + limitedLength + "M')</script>";
       return;
   }

  //获取文件名,判断文件扩展是否符合要求
  string fileName = this.ful.FileName;
  //判断文件名是否是exe文件
  if (fileName.Substring(fileName.LastIndexOf(".", StringComparison.Ordinal)).ToLower() != ".exe")
  return;

  fileName = DateTime.Now.ToString("yyyyMMddhhssms") + fileName;

  string path = Server.MapPath("~/UploadFiles");

 try
 {
   this.ful.SaveAs(path + "/" + fileName);
   this.ltaMsg.Text = "<script type='text/javascript'>alert('文件上传成功')</script>";
 }
 catch (Exception exception)
 {
    Console.WriteLine(exception);
    throw;
 }
}

Setp4 运行

运行后F12看到的源码

<body>
    <form method="post" action="./WebForm.aspx" id="form1" enctype="multipart/form-data">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="2tTIqDem0zJiUtGU77GScZu9GuPWGPlhzCcp/ZVSpTbdL6NyvDy1QX5PBiNNthcGKLFfZ/vUhxWl3ReGiCwr3aZLT6DLCGEmoOdBIYmvpCKqzfpc5H3NBZUOlCknQQzhy8ZCOEBYDgotYHPVFkcfhQ==" />
</div>

    <div>
     请选择要上传的文件:<input type="file" name="ful" id="ful" /> 
        <br />
        <input type="submit" name="btnUpLoad" value="开始上传" id="btnUpLoad" />
        <br />

    </div>

<div class="aspNetHidden">

    <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="7F653548" />
    <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="C+15Jy0k6SJtL5WjrhzLo2WZows8PthWoMW5MMJn9zQsUQifAx2ZjfFx3aAbEpdM6XLiAAQyw58Io6qrDaj87vi6Fb/qUAPS/kYPs6BDo1/mqPtGLrA/xwi0cc/eq13H" />
</div></form>

<!-- Visual Studio Browser Link -->
<script type="application/json" id="__browserLink_initializationData">
    {"appName":"Chrome","requestId":"fb8a692d20c947bda95f20e4a05b73c6"}
</script>
<script type="text/javascript" src="http://localhost:22955/9fb3c6ad494c416f930a7d233a4756f9/browserLink" async="async"></script>
<!-- End Browser Link -->

</body>

总结

asp:FileUpload服务器控件翻译成type是file的input标签,asp:Button服务器控件翻译成submit标签

服务器控件最后是生成相对应的HTML标签,这样也可以说服务器控件就是对HTML标签的封装

这样的开发方式,F12看到hidden,里面包装看不懂的信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值