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

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

<form id="form1" runat="server">
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="上传" OnClick="Button1_Click" />
<asp:Label ID="Label1" runat="server" Text="" Style="color: Red"></asp:Label>
</form>
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
FileUpload1.SaveAs(Server.MapPath("~/") + FileUpload1.FileName);
Label1.Text = "上传成功!";
}
}

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

<form id="form1" runat="server">
<input type="file" id="file1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="上传" OnClick="Button1_Click" />
<asp:Label ID="Label1" runat="server" Text="" Style="color: Red"></asp:Label>
</form>
protected void Button1_Click(object sender, EventArgs e)
{
if (file1.PostedFile.ContentLength > 0)
{
file1.PostedFile.SaveAs(Server.MapPath("~/") + Path.GetFileName(file1.PostedFile.FileName));
Label1.Text = "上传成功!";
}
}

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

<form id="form1" runat="server" enctype="multipart/form-data">
<input type="file" name="file" />
<asp:Button ID="Button1" runat="server" Text="上传" OnClick="Button1_Click" />
<asp:Label ID="Label1" runat="server" Text="" Style="color: Red"></asp:Label>
</form>
protected void Button1_Click(object sender, EventArgs e)
{
if (Request.Files["file"].ContentLength > 0)
{
Request.Files["file"].SaveAs(Server.MapPath("~/") + Path.GetFileName(Request.Files["file"].FileName));
Label1.Text = "上传成功!";
}
}

注意两个区别:

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

二、FileUpload控件有HasFile属性,用于判断用户是否选择了上传文件,而后面两种方法则需要通过判断上传文件大小ContentLength属性,当用户没有选择上传文件时,该属性值为0。可以看出FileUpload封装程度更高,但灵活性也稍差。

转载于:https://www.cnblogs.com/wangsai/p/4113342.html

ASP.NET文件上传的三种基本方法相关推荐

  1. 文件上传的三种方式-Java

    前言:负责,因为该项目他(jetty嵌入式开始SpringMvc)实现文件上传的必要性,并拥有java文件上传这一块还没有被曝光.并 Http 更多晦涩协议.因此,这种渐进的方式来学习和实践上载文件的 ...

  2. 大文件上传 问题解决三种方案

    最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...

  3. 文件上传的20种骚方法

    文章目录 文件解析漏洞 第一题: 第二题: 第三题: 第四题: 第五题: 第七题: 第八题 第九题: 第十题: 下面就是白名单绕过了 第十一题: 第十二题: 第十三题:--第十五题: 第十六题: 第十 ...

  4. JavaBean实现多个文件上传的两种方法

    JavaBean实现多个文件上传的两种方法 王新芳        刘杰 北京工商大学计算机学院 摘要:本文介绍了JavaBean实现多个文件上传的两种方法,分别是使用http协议和ftp协议实现.首先 ...

  5. 让nginx支持文件上传的几种模式

    2019独角兽企业重金招聘Python工程师标准>>> 文件上传的几种不同语言和不同方法的总结. 第一种模式 : PHP 语言来处理 这个模式比较简单, 用的人也是最多的, 类似的还 ...

  6. vue获取上传图片的名字和路径_使用Vue实现图片上传的三种方式

    项目中需要上传图片可谓是经常遇到的需求,本文将介绍 3 种不同的图片上传方式,在这总结分享一下,有什么建议或者意见,请大家踊跃提出来. 没有业务场景的功能都是耍流氓,那么我们先来模拟一个需要实现的业务 ...

  7. Asp.net 文件上传的 FileUpload FileName 和 FileUpload PostedFile.FileName的细节问题

    Asp.net 文件上传的 FileUpload FileName 和 FileUpload PostedFile.FileName的细节问题 ASP.NET 文件上传估计大家都用得很熟悉,常用控件 ...

  8. ASP.NET文件上传大小的限制解决方案

    ASP.NET文件上传大小的限制解决方案 参考文章: (1)ASP.NET文件上传大小的限制解决方案 (2)https://www.cnblogs.com/hgmyz/p/6068156.html 备 ...

  9. 原生态的ajax如何上传文件,原生ajax和iframe框架实现图片文件上传的两种方式

    大家应该可以举出几种常用的异步文件上传功能的实现方式,使用频率较多的有原生ajax和iframe框架,实现图片文件上传,下面就为大家分享图片文件上传的两种方式:原生ajax和iframe框架,供大家参 ...

最新文章

  1. 教你搭建多变量时间序列预测模型LSTM(附代码、数据集)
  2. scikit-learn K近邻法类库使用小结
  3. Android的Touch系统简介(一)
  4. [COCI2017-2018#5] Pictionary(并查集+dfs)
  5. 如何对数据库中的表以及表中的字段进行重命名
  6. oracle昨日时间,。。今日,昨日,上周,本月,本年,按时间统计总金额
  7. 数列分块入门 7(LibreOj-6283)
  8. 四针角oled屏连接arduino_和孩子一起做个显示温湿度的oled屏桌面摆件[青创小电视]...
  9. 连通性问题--Algorithms IN C读书笔记
  10. VS调试配置外网可访问
  11. java后端开发简历模板,最全Java知识总结
  12. 编程到底难在哪里?—— 《人月神话》阅读分享
  13. html连接到mysql数据库_怎么连接HTML网页到数据库?
  14. 最小公倍数求法 (3种代码思路供参考 ) --(C语言实现)-- 详解
  15. 计算机想ping一下网络,怎么ping网速(详细教您ping网络的方法)
  16. winform之修改图标
  17. dnw驱动更新,支持全系统(xp,win7,win8/win10)
  18. 使用vue-wordcloud实现文字云/词云
  19. Maven基础5:Maven基本概念,仓库配置(在setting中配置本地仓库 和 远程仓库);全局setting和局部setting;
  20. tp6实现商城后台登录功能

热门文章

  1. js中style.display=无效的解决方法
  2. XML DataBase之Xindice(二)
  3. Ubuntu学习日记--Lesson7:文件权限管理chmod
  4. centos7默认字体_如何更换CentOS(Linux)系统默认字体?
  5. mysql没有group by_MySQL:不在GROUP BY中
  6. 电脑主板跳线_电脑主板跳线连接图
  7. 如何保持连接_酒店厨房设备如何保养清洗?
  8. github上传文件 linux,第一次上传代码到github (Linux)
  9. tomcat 停止 java 线程不停止_Java Tomcat,底层Netty线程不停止
  10. 可编辑列表标签_好用的音频标签管理工具Music Tag Editor Pro Mac4.0.1 中文版