asp.net使用JS+form表单Post和Get方式提交数据

 更新时间:2019年01月23日 10:42:00   作者:chenqiangdage  
今天小编就为大家分享一篇关于asp.net使用JS+form表单Post和Get方式提交数据,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

最近工作中用到了一种使用JS+form用post方式上传文件一种方式。前台用Html input,使用JS方式往服务器上传文件,具体实现看代码:

前台页面使用aspx网页,使用input 标签,用其file类型;此标签不使用runat="server".不使用服务器控件;这里需要加上一个iframe标签。并隐藏;设置一a标签。用来作为用户点击按钮;调用JS函数:Uploadfun();

 <div>
  <input type="file" id="FileUpLoad" name="FileUpLoad" style="width:140px;" />
  <a href="javascript:void(0);" rel="external nofollow" onclick="Uploadfun()">上传</a>
 <iframe name="hidden_frame" id="hidden_frame" style="width:10%;display:none;"></iframe>
 </div>

JS代码如下:

function Uploadfun(){
      var _file = document.getElementById("FileUpLoad"); //此处是前台页面的 input 标签的ID
      var _form = document.createElenent("form"); //创建一个form
      document.body.appendChild(_form);//添加一个form
      _form.encoding = "multipart/form-data"; //使用该编码规程可以不限制 post表单2M大小的限制
      _form.method="post";//使用POST方式
      _form.action="../Service/FileSrv.aspx?Type=Client&CallFun=UploadFile"; //此处使用Get方式,传到前台页面的后台Server代码层;
      // 这个是本人工作中的项目位置
      _form.target = "hidden_frame";
      var pos = _file.nextSibling;
      _form.appendChild(_file);
      _form.submit();
      pos.parentNode.insertBefore(_file,pos);
      document.body.renoveChild(_form);
    }

C#层代码:就是JS代码中的form的action的所标识。在FileSrv.aspx的后台cs代码中,我们可以通过使用getquery方法,得到使用Get方式传过来的参数;

这个例子里参数Type=Client是一个模块标识,CallFun则是指出cs代码层要调用的响应函数;UploadFile();

代码如下:

private void UploadFile()
    {
      //
      //......其他代码
      //
      HttpFileCollection files = HttpContext.Current.Request.Files;
      if(files.Count>0)
      {
        int lintTemp = files[0].FileName.LastIndexOf(".");//得到input标签中的file文件路径;
        string lstrFileType = string.Empty;
        string lstrContentType = string.Empty;
        if(lintTemp!=-1 &&files[0].FileName.Length>lintTemp+1)
        {
          lstrFileType = files[0].FileName.Substring(lintTemp+1).ToUpper();
        }
        if(lstrFileType.ToUpper()=="JPG")
        {
          if(files[0].ContentLength<10485760)
          {
           //记得要先保存到应用程序发布所在的服务器上!
            files[0].SaveAs(Server.MapPath("~/Files/")+"JPG1."+files[0].FileName.Substring(files[0].FileName.LastIndexOf(".")));
          }
        }
      }
      //
      //......其他代码
      //
    }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • ASP.net处理XML数据实例浅析

    ASP.net处理XML数据实例浅析

    这篇文章主要介绍了ASP.net处理XML数据实例浅析,分析了XML的原理与用法,并以实例形式讲述了asp.net处理XML数据的方法,需要的朋友可以参考下
    2014-10-10
  • ASP.NET数据绑定控件详解

    ASP.NET数据绑定控件详解

    这篇文章主要为大家详细介绍了ASP.NET数据绑定控件,为大家解析了ListBox、GridView、Repeater三个数据绑定控件的“高效分页”,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • 微信公众平台开发之获得ACCESSTOKEN .Net代码解析

    微信公众平台开发之获得ACCESSTOKEN .Net代码解析

    这篇文章主要为大家详细解析了微信公众平台开发之获得ACCESSTOKEN .Net代码,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • .Net Core学习教程之在Mvc中简单的使用日志组件

    .Net Core学习教程之在Mvc中简单的使用日志组件

    这篇文章主要给大家介绍了关于.Net Core学习教程之在Mvc中简单使用日志组件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • .NET 6开发TodoList应用之实现DELETE请求与HTTP请求幂等性

    .NET 6开发TodoList应用之实现DELETE请求与HTTP请求幂等性

    这篇文章主要介绍了在.NET6开发中如何实现DELETE请求以及HTTP请求幂等性的,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2021-12-12
  • log4net创建系统日志的详细步骤

    log4net创建系统日志的详细步骤

    log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。本文主要是简单的介绍如何在Visual Studio2010(Asp.Net Mvc3.0)中使用log4net快速创建系统日志,如何扩展以输出自定义字段
    2013-11-11
  • ASP.NET技巧:为Blog打造个性日历

    ASP.NET技巧:为Blog打造个性日历

    ASP.NET技巧:为Blog打造个性日历...
    2006-09-09
  • .NET/ASP.NET Routing路由(深入解析路由系统架构原理)

    .NET/ASP.NET Routing路由(深入解析路由系统架构原理)

    这篇文章主要介绍了.NET/ASP.NET Routing路由(深入解析路由系统架构原理),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • 使用ASP.NET模板生成HTML静态页面的五种方案

    使用ASP.NET模板生成HTML静态页面的五种方案

    使用ASP.NET模版生成HTML静态页面并不是难事,主要是使各个静态页面间的关联和链接如何保持完整。本文介绍了使用ASP.NET模版生成HTML静态页面的五种方案
    2011-11-11
  • .NET发送邮件的实现方法示例

    .NET发送邮件的实现方法示例

    这篇文章主要给大家介绍了关于.NET发送邮件的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用.net具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06

最新评论