asp.net 中 html 控件 File 的使用

1. 前台代码

<head runat="server">
<title></title>
<link href="../../../stylesheets/bootstrap-theme.css" rel="stylesheet" type="text/css" />
<link href="../../../stylesheets/bootstrap.css" rel="stylesheet" type="text/css" />
<script src="../../../javascripts/bootstrap.js" type="text/javascript"></script>
<script src="../../../javascripts/common-validate.js" type="text/javascript"></script>

<script type="text/javascript">
function checkFile() {
var file = document.getElementsByName("File")[0].value;
if (file.trim() == "") {
alert("请选择文件!!");
return false;
}
if (!isExcelXls(file)) {
alert("Excel文件必须是 .xls 格式!!");
return false;
}
}
</script>

</head>
<body>
<form id="form1" runat="server" enctype="multipart/form-data">   <!--红色部分不能少-->
<div class="panel panel-primary">
<div class="panel-heading">
<h5 class="panel-title">导出装箱单</h5>
</div>
<div class="panel-body" style="margin-top:20px;">
<div class="form-group">
<div style="float:left;width:240px;padding-top:5px;text-align:right;padding-right:10px;">
<label class="control-label">请选择文件</label>
</div>
<div style="float:left;width:300px;padding-top:5px">
<input type="file" name="File" />
</div>
<div style="float:left;width:120px;text-align:right">
<asp:Button ID="btn_export" runat="Server" Text="导出装箱单" CssClass="btn btn-info" OnClientClick="return checkFile()"
onclick="btn_export_Click" />
</div>
<div style="float:left;width:120px;text-align:right;padding-top:6px;">
<a href="../../excel/template/export-zhuangxiang-template.xls">模板</a>
</div>
</div>
</div>
<div class="panel-footer">
</div>
</div>
</form>
</body>

2.后台获取文件的代码

protected void btn_export_Click(object sender, EventArgs e)
{
HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
int count = files.Count;
string name = files[0].FileName;

string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + name; // 文件名称,当前时间(yyyyMMddhhmmss)
string webFilePath = Server.MapPath("~/viewpage/excel/zhuangxiang/") + fileName; // 服务器端文件路径
files[0].SaveAs(webFilePath);

DataTable table = new DBConn().getExcelContent(webFilePath);

foreach (DataRow dr in table.Rows)
{
if (dr[0].ToString() != "" && dr[1].ToString() != "")
{

}
}

}

3.必须加上  enctype属性

enctype  属性有三种取值 :

1、application/x-www-form-urlencoded
2、multipart/form-data
3、text/plain
其中application/x-www-form-urlencoded是默认值,作用是设置表单传输的编码。例如我们在AJAX中见过xmlHttp.setRequestHeader("Content-Type","application/x-www-form- urlencoded");如果不写会报错的,但是在html的form表单里是可以不写enctype=application/x-www-form-urlencoded,因为默认的HTML表单就是这种传输编码类型的。
而multipart/form-data是用来制定传输数据的特殊类型的,主要就是我们上传的非文本的内容,比如图片或是是mp3等等。
text/plain是纯文本传输的意思,在发邮件的时候要设置这种编码类型,否则会出现接收时编码混乱的问题。网络上经常拿text/plain和 text/html做比较,其实这两个很好区分,前者用来传输纯文本文件,后者则是传递html代码的编码类型,在发送头文件时才用得上。①和③都不能用于上传文件,只有multipart/form-data才能完整的传递文件数据

上面提到的MIME,它的英文全称是"Multipurpose Internet Mail Extensions" 多功能Internet 邮件扩充服务,它是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件系统,但后来也应用到浏览器。服务器会将它们发送的多媒体数据的类型告诉浏览器,而通知手段就是说明该多媒体数据的MIME类型,从而让浏览器知道接收到的信息哪些是MP3文件,哪些是Shockwave文件等等。服务器将 MIME标志符放入传送的数据中来告诉浏览器使用哪种插件读取相关文件。

时间: 2024-10-08 13:01:50

asp.net 中 html 控件 File 的使用的相关文章

轻松学习Asp.net中的控件

C/S 结构,即大家熟知的客户机和服务器结构.它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销.目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件:因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统.

ASP.NET中验证控件的使用

原文:ASP.NET中验证控件的使用 前言: 前几日,无奈用JS判断控件的有效性,发现的确是一件费力.费神的事情!特别是针对邮件格式.邮政编码等的关于正则表达式的JS验证(其中涉及正则表达式的比较等,较烦~).其实对于这些常用的控件有效性验证,在Asp.Net中有单独的验证控件可供使用.他们可以满足一般的,诸如非空,范围.比较等的验证. 验证控件: Asp.Net中内置的验证控件有:RequiredFieldValidation.RangeValidation.RegularExpressVal

Asp.Net中ObjectDataSource控件传参绑定数据

最近在实习,在上头交付的任务中,由于需要使用Asp.Net的ListView控件,因此必然得就使用了ObjectDataSource控件,由于在使用过程中,需要网页中的参数发送到后台后,运行该参数进行查询数据.这过程必然就牵涉到将参数传送给ObjectDataSource控件,然后在进行查询后的数据绑定.下面我们来看下这个过程是如何实现的: 1.创建一个WebForm页面,拖入ListView控件和ObjectDataSource控件 2.配置ObjectDataSource数据源按照以下步骤进

ASP.NET中TextBox控件设立ReadOnly=&quot;true&quot;后台取不到值

SP.NET中TextBox控件设置ReadOnly="true"H或Enabled=false后台取不到值 当TextBox设置了ReadOnly="true" 后,要是在前台为控件添加了值,后台是取不到的,值为“空”  .    方法一:不设置ReadOnly属性,通过οnfοcus=this.blur()来模拟,如下: <asp:TextBox ID="TextBox1" runat="server" οnfοcu

Asp.net中FileUpload控件实现图片上传并带预览显示

单一图片上传——“选择”+“上传”,.NET默认模式: 1.实现原理: 采用FileUpload控件默认的使用方式,先由“选择”按钮选择图片,然后单击“上传”按钮完成上传,并可在“上传”按钮的单击事件中加载已上传图片. 2.关键代码:     页面代码: 1 <asp:FileUpload ID="FileUpload" runat="server" /> 2 <asp:Button ID="BtnUp" runat="

027. asp.net中数据绑定控件之 GridView控件

GridView控件支持下面的功能: 绑定至数据源控件, 如SqlDataSource 内置排序功能 内置更新和删除功能 内置分页功能 内置行选择功能 可以编程方式访问GridView对象模型以动态设置属性 处理事件等 多个键字段 用于超链接列的多个数据字段 可通过主题和样式自定义外观 Girdview控件常用属性: BackImageUrl 背景图片 EmptyDtatText 没有任何数据时显示的文字 GridLines 网格线的样式 ShowHeader 是否显示页首连接 ShowFoot

asp.net中验证控件的使用方法

用于检查是否有输入值 :RequiredFieldValidator(必须字段验证) 按设定比较两个输入 :CompareValidator(比较验证) 输入是否在指定范围 :RangeValidator(范围验证) 正则表达式验证控件 :RegularExpressionValidator(正则表达式验证) 自定义验证控件 :CustomValidator(自定义验证) 总结验证结果 :ValidationSummary(验证总结) 1.RequiredFieldValidator(必填字段验

ASP.NET中Literal控件的使用方法(用于向网页中动态添加内容)

原文:https://www.jb51.net/article/82855.htm 可以将 Literal 控件用作网页上其他内容的容器.Literal 控件最常用于向网页中动态添加内容.简单的讲,就是可以把 HTML 代码写到 Literal 控件上,直接呈现出来. 一.常见Literal属性 属性 描述 Text 指定 Literal 控件中显示的文本.在用户的浏览器中,这会显示为 HTML. Mode 指定控件如何处理添入其中的标记. 二.基础用法 前台 LiteralTest.aspx

asp.net中Ajax控件的用途(二)

1.个人觉得对于新手最为实用的PopupControlExtender,弹出层载体,在实例中可以弹出登录框,百度的登陆页面基本都用的这种形式,可以把浮动的panel宽高都设置为100%,以屏蔽底层操作. 2.DropshadowExtender,可以为目标控件增加阴影效果,圆角效果,定义圆角半径,非常有立体感,opacity属性用于设置透明度,用在登陆框上也是个不错的选择. 3.PasswordStrength,密码强度控件,也很实用吧,所有网站都需要的. 4.DragPanelExtender