ASP.NET依托.net framework类库,封装了大量的功能,使得上传文件非常简单,主要有以下三种基本方法。

方法一:用Web控件FileUpload,上传到网站根目录。

Test.aspx关键代码:

  1. <form id="form1" runat="server">
  2. <asp:FileUpload ID="FileUpload1" runat="server" />
  3. <asp:Button ID="Button1" runat="server" Text="上传" OnClick="Button1_Click" />
  4. <asp:Label ID="Label1" runat="server" Text="" Style="color: Red"></asp:Label>
  5. </form>

Test.aspx.cs关键代码:

  1. protected void Button1_Click(object sender, EventArgs e)
  2. {
  3. if (FileUpload1.HasFile)
  4. {
  5. FileUpload1.SaveAs(Server.MapPath("~/") + FileUpload1.FileName);
  6. Label1.Text = "上传成功!";
  7. }
  8. }

方法二:用Html控件HtmlInputFile,上传到网站根目录。

Test.aspx关键代码:

  1. <form id="form1" runat="server">
  2. <input type="file" id="file1" runat="server" />
  3. <asp:Button ID="Button1" runat="server" Text="上传" OnClick="Button1_Click" />
  4. <asp:Label ID="Label1" runat="server" Text="" Style="color: Red"></asp:Label>
  5. </form>

Test.aspx.cs关键代码:

  1. protected void Button1_Click(object sender, EventArgs e)
  2. {
  3. if (file1.PostedFile.ContentLength > 0)
  4. {
  5. file1.PostedFile.SaveAs(Server.MapPath("~/") + Path.GetFileName(file1.PostedFile.FileName));
  6. Label1.Text = "上传成功!";
  7. }
  8. }

方法三:用Html元素<input type="file" …/>,通过Request.Files上传到网站根目录。

input type="file" name="xxxxxxx"/>一定不要忘记“name”属性。否则在后台代码中用Request.Files是取不到值得!

Test.aspx关键代码:

  1. <form id="form1" runat="server" enctype="multipart/form-data">
  2. <input type="file" name="file" />
  3. <asp:Button ID="Button1" runat="server" Text="上传" OnClick="Button1_Click" />
  4. <asp:Label ID="Label1" runat="server" Text="" Style="color: Red"></asp:Label>
  5. </form>

Test.aspx.cs关键代码:

  1. protected void Button1_Click(object sender, EventArgs e)
  2. {
  3. if (Request.Files["file"].ContentLength > 0)
  4. {
  5. Request.Files["file"].SaveAs(Server.MapPath("~/") + Path.GetFileName(Request.Files["file"].FileName));
  6. Label1.Text = "上传成功!";
  7. }
  8. }

注意两个区别:

一:FileUpload.FileName获取客户端上传文件名(不带路径),而file1.PostedFile.FileName 和Request.Files["file"].FileName在不同浏览器下情况不同:IE8下获得的是客户端上传文件的完全限定名(带路径),谷歌、苹果等浏览器下则仍为文件名(不带路径)。

二:FileUpload控件有HasFile属性,用于判断用户是否选择了上传文件,而后面两种方法则需要通过判断上传文件大小ContentLength属性,当用户没有选择上传文件时,该属性值为0。

可以看出FileUpload封装程度更高,但灵活性也稍差。

net上传文件的三种方法的更多相关文章

  1. python webdriver api-上传文件的三种方法

    上传文件: 第一种方式,sendkeys(),最简单的 #encoding=utf-8 from selenium import webdriver import unittest import ti ...

  2. ASP.NET上传文件的三种基本方法

    ASP.NET依托.net framework类库,封装了大量的功能,使得上传文件非常简单,主要有以下三种基本方法. 方法一:用Web控件FileUpload,上传到网站根目录. Test.aspx关 ...

  3. ASP.NET上传文件的几种方法

      //上传文件实例 if (fileDealer.HasFile)//判断文件是否存在        {            string filepath = "";     ...

  4. SpringMVC上传文件的三种方式(转)

    直接上代码吧,大伙一看便知 这时:commonsmultipartresolver 的源码,可以研究一下 http://www.verysource.com/code/2337329_1/common ...

  5. SpringMVC上传文件的三种方式

    直接上代码吧,大伙一看便知 这时:commonsmultipartresolver 的源码,可以研究一下 http://www.verysource.com/code/2337329_1/common ...

  6. SpringMVC上传文件的三种方式(转载)

    直接上代码吧,大伙一看便知 这时:commonsmultipartresolver 的源码,可以研究一下 http://www.verysource.com/code/2337329_1/common ...

  7. Web上传文件的三种解决方案

    第一点:Java代码实现文件上传 FormFile file = manform.getFile(); String newfileName = null; String newpathname =  ...

  8. SpringMVC上传文件的三种方式(转帖)

    /* * 通过流的方式上传文件 * @RequestParam("file") 将name=file控件得到的文件封装成CommonsMultipartFile 对象 */ @Re ...

  9. GitHub常用上传文件的两种方法 附带常见的问题及Git安装教程

    从早上下课到现在一直在琢磨如何给Github下载本地文件,中午饭都没吃.还好是解决了,感觉挺有成就感的.O(∩_∩)O哈哈~ 好哒 闲话不说,说重点. 一.git的安装 百度云:http://pan. ...

随机推荐

  1. python对象的复制问题,按值传递?引用传递?

    这部分这篇博文说的很明白,转了过来 作者:winterTTr (转载请注明)http://blog.csdn.net/winterttr/article/details/2590741#0-tsina ...

  2. 怎样在 CentOS 7.0 上安装和配置 VNC 服务器

    这是一个关于怎样在你的 CentOS 7 上安装配置 VNC 服务的教程.当然这个教程也适合 RHEL 7 .在这个教程里,我们将学习什么是 VNC 以及怎样在 CentOS 7 上安装配置 VNC ...

  3. Linux运维:CentOS6和7的区别

    Liunx笔记:CentOS6和CentOS7的区别 路飞学城运维人员 在线流程图软件 Ago linux运维群: 93324526 笔者QQ:578843228 常用安装包下载 yum instal ...

  4. IIS配置支持apk文件下载

    写在前面 最近项目中涉及到移动端的东西,有一个功能是要下载apk文件,apk为安卓安装程序,但是iis默认是不支持该类型的文件下载的. 解决方案 找到该站点,并切换到功能视图 找到MIME类型,双击进 ...

  5. QQ分享到电脑SDK bug

    问题:当图文(图片+文字+url)混合分享到我的电脑时,就会出bug,只显示图片. 经过测试: params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL," ...

  6. ZOJ - 3228 Searching the String (AC自己主动机)

    Description Little jay really hates to deal with string. But moondy likes it very much, and she's so ...

  7. nginx phase handler的原理和选择

    nginx phase handler的原理和选择 PHASE HANDLER的种类 nginx在接收并解析完请求行.请求头之后.就会依次调用各个phase handler. phase handle ...

  8. Linux下的定时任务Crontab

    通过crontab -e写入定时任务的指令,一行为一项任务. 任务模式是时间克龙表达式+命令形式. 如: 2 0,6,12,18 * * * perl /root/restarttomcat.pl p ...

  9. Python获取免费的可用代理

    Python获取免费的可用代理 在使用爬虫多次爬取同一站点时,常常会被站点的ip反爬虫机制给禁掉,这时就能够通过使用代理来解决.眼下网上有非常多提供最新免费代理列表的站点.这些列表里非常多的代理主机是 ...

  10. Nexus 5刷阿里云OS

    刷机有风险,刷机需慎重! 1. 下载 recovery 的img和 阿里云os. recovery 的img下载: https://kanbox.com/f/V00KA 阿里云OS3.0.3 : 2月 ...