C#-WebForm-文件上传-FileUpload控件
FileUpload - 选择文件,不能执行上传功能,通过点击按钮实现上传
默认选择类型为所有类型
//<上传>按钮
void Button1_Click(object sender, EventArgs e)
{
//判断是否选中文件
if (FileUpload1.FileName.Length <= )
{
Label1.Text = "未选中任何文件!";
return;
}
//<上传> 功能代码
//------------------------------------------------------
//新建文件夹Uploads,设置保存文件名和类型abc.txt
string path = "Uploads/abc.txt";
//映射绝对路径(Server.MapPath())
string endpath = Server.MapPath(path);//映射绝对路径
//展示上传保存文件夹绝对路径
Label1.Text = endpath;
//保存到服务器(SaveAs())
FileUpload1.SaveAs(endpath);//保存到绝对路径
//------------------------------------------------------
}
<上传>按钮
1、如何判断是否选中文件?
FileUpload.FileName -
选中文件的文件名,如果长度不大于0,那么说明没选中任何文件
js - f.value.length
2、如何保存到服务器上?
FileUpload.SaveAs("绝对路径");
3、如何获得绝对路径?(李献策lxc)
先编写相对路径 - "UpLoads/abc.txt"
将相对路径映射成绝对路径 - Server.MapPath("UpLoads/abc.txt");
-----------------------------------------------------------------------------
在上述方法中,只能上传.txt文件,并且名字只能是abc。如何保留原有的名字和文件类型?
//新建文件夹Uploads,设置保存文件名 + 选择的文件名
string path = "Uploads/"+FileUpload1.FileName;
相同的文件会被覆盖。如何保持文件的单一性不被覆盖?
文件名前+登录用户名+当前时间(精确到毫秒)
//新建文件夹Uploads,设置保存文件名
string path = "Uploads/" + Request.Cookies["username"].Value + DateTime.Now.ToString("yyyyMMddhhmmssms") + FileUpload1.FileName;
-----------------------------------------------------------------------------
4、现在只能上传成为txt文件,并且名字只能是abc
如何保留文件原有的名字和文件类型?
"UpLoads/" + FileUpload1.FileName;
5、如何防止重名覆盖的问题?
"UpLoads/" + Request.Cookies["user"].Value + DateTime.Now.ToString("yyyyMMddhhmmssms") + FileUpload1.FileName;
-----------------------------------------------------------------------------
如何限制选中文件的类型?(李献策lxc)
前端 FileUpload 选择文件时显示的类型:
<asp:FileUpload ID="FileUpload1" runat="server" accept=".jpg,.png,.jpeg,.txt" />
用户可以公共选择“所有文件”来选择其他类型的文件,如何限制?
JS代码:
<script type="text/javascript">
//<上传>按钮点击事件(JS优先级最高)
document.getElementById("Button1").onclick = function () {
//获取选中的文件名
var filename = document.getElementById("FileUpload1").value;
//截取文件名后4位或5位
var n = filename.substr(filename.length - , );
var m = filename.substr(filename.length - , );
//判断 n 或 m 不满足条件则终止执行,否则继续
if (n !== ".txt" && n !== ".jpg" && n !== ".png" && m !== ".jpeg")
{
alert("请选择正确的文件格式!");
return false;
}
};
</script>
<上传>按钮点击事件(JS优先级最高)
-----------------------------------------------------------------------------
6、如何限制选中文件的类型?
限制普通人,给控件添加属性 - accept=".jpg,.png,.jpeg,.txt"
限制找事的:
document.getElementById("Button1").onclick = function () {
var fileName = document.getElementById("FileUpload1").value;
var name = fileName.substr(fileName.length - 4, 4);
var name1 = fileName.substr(fileName.length - 5, 5);
if (name != ".jpg" && name != ".png" && name != ".txt" && name1 != ".jpeg")
{
alert("请选择正确的文件!你要找事儿啊??");(李献策lxc)
return false;
}
};
-----------------------------------------------------------------------------
系统默认最大上传大小是4M,如果文件过大则无法上传
如何限制上传文件的大小?扩容 或 限制大小(李献策lxc)
扩容:
webconfig配置文件中:
<configuration>
<system.web>
<compilation debug="false" targetFramework="4.0" />
<!--设置最大上传文件大小40M,单位KB-->
<httpRuntime maxRequestLength="" />
</system.web>
</configuration>
注意!不要扩的太多,否则多人同时上传大文件会造成服务器内存不足!
限制大小:
C#端限制:
//<上传>按钮
void Button1_Click(object sender, EventArgs e)
{
//判断是否选中文件
if (FileUpload1.FileName.Length <= )
{
Label1.Text = "未选中任何文件!";
return;
} //判断选中文件的长度大小是否大于4M(默认单位为B)
if (FileUpload1.PostedFile.ContentLength > * * )
{
Label1.Text = "文件长度过长!!";
return;
} //<上传> 功能代码
//------------------------------------------------------
//新建文件夹Uploads,设置保存文件名
string path = "Uploads/" + DateTime.Now.ToString("yyyyMMddhhmmssms") + FileUpload1.FileName;
//映射绝对路径(Server.MapPath())
string endpath = Server.MapPath(path);//映射绝对路径
//展示上传保存文件夹绝对路径
Label1.Text = endpath;
//保存到服务器(SaveAs())
FileUpload1.SaveAs(endpath);//保存到绝对路径
//------------------------------------------------------
}
C#端判断文件是否在允许范围内
缺点:<上传>点击后,系统是先提交给后台,然后再进行判断,提交给后台速度受影响
JS端限制:
<script type="text/javascript">
//<上传>按钮点击事件(JS优先级最高)
document.getElementById("Button1").onclick = function () {
//判断要上传的文件的长度大小
var f = document.getElementById("FileUpload1");
if (f.files[].size > * * )
{
Label1.Text = alert("文件长度过长!!");
return;
} //获取选中的文件名
var filename = document.getElementById("FileUpload1").value;
//截取文件名后4位或5位
var n = filename.substr(filename.length - , );
var m = filename.substr(filename.length - , );
//判断 n 或 m 不满足条件则终止执行,否则继续
if (n !== ".txt" && n !== ".jpg" && n !== ".png" && m !== ".jpeg")
{
alert("请选择正确的文件格式!");
return false;
}
};
</script>
JS端判断文件是否在允许范围内
优势:先进行判断再提交上传,不占用上传内存。
注意:C#端与JS端都要写,为防止绕过JS端直接上传
-----------------------------------------------------------------------------
7、控制上传文件的大小
扩容 - 系统默认允许最大上传长度是4MB
webconfig配置文件中写入
<system.web>
<compilation debug="false" targetFramework="4.0" />
<httpRuntime maxRequestLength="40000" />
</system.web>
百度搜,研究,C#大文件上传,断点续传。
注意!不要扩的太多,否则多人同时上传大文件会造成服务器内存不足!
限制大小
C#端限制:
if (FileUpload1.PostedFile.ContentLength>(4*1024*1024))
{
Label1.Text = "文件长度过长!!!";
return;
}
JS端限制:
var f = document.getElementById("FileUpload1");
if (f.files[0].size > (4 * 1024 * 1024)) {
alert("文件过大!!!");
return false;
}
C#-WebForm-文件上传-FileUpload控件的更多相关文章
- Web大文件上传(断点续传)控件-Xproer.HttpUploader6-安装教程
安装教程: IE8控件安装教程 IE9控件安装教程 Firefox控件安装教程 Chrome控件安装教程 Chrome 45+控件安装教程 相关问题: 提示Runtime Error错误 360拦 ...
- 自制文件上传JS控件,支持IE、chrome、firefox etc.
(function() { if (window.FileUpload) { return; } window.FileUpload = function (id, url) { this.id = ...
- Webform之FileUpload(上传按钮控件)简单介绍及下载、上传文件时图片预览
1.FileUpload上传控件:(原文:http://www.cnblogs.com/hide0511/archive/2006/09/24/513201.html) FileUpload 控件显示 ...
- Web大文件(夹)上传(断点续传)控件-Xproer.HttpUploader6
版权所有 2009-2017荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/up6.2/in ...
- php文件夹上传下载控件分享
用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个php文件夹上传下载的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下是实例的部分脚本文件 这里我先 ...
- asp.net文件夹上传下载控件分享
用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个需要在.net环境下大文件上传的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下是此例中各种脚本文件 ...
- java文件夹上传下载控件分享
用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个需要在JAVA.MyEclipse环境下大文件上传的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下 ...
- Web大文件(夹)上传(断点续传)控件发布-Xproer.HttpUploader6
版权所有 2009-2017荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/up6.2/in ...
- webform文件上传、图片水印、验证码
文件上传: 所用控件:FileUpload 使用时的思路: 1.判断用户是否选中了文件 FileUpload.FileName获取选中的文件名,判断长度,如果长度大于零就代表已经选择了文件 JS端:通 ...
随机推荐
- 静态代理和利用反射形成的动态代理(JDK动态代理)
代理模式 代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 静态代理 1.新建 ...
- JavaScript 中的变量命名方法
三种命名方法 在程序语言中,通常使用的变量命名方法有三种:骆驼命名法(CamelCase),帕斯卡命名法(PascalCase)和匈牙利命名法. 依靠单词的大小写拼写复合词的做法,叫做"骆驼 ...
- 深刻理解:C#中的委托、事件
C#中的事件还真是有点绕啊,以前用JavaScript的我,理解起来还真是废了好大劲!刚开始还真有点想不明白为什么这么绕,想想和JS的区别,最后终于恍然大悟! C#中事件绕的根本原因: C#的方法,它 ...
- <![CDATA[的web使用简单说明
html.javascript会涉及到三个解析器,html解析器.xml解析器.javascript解析器.那么好了,问题来了,以上代码经常混编在一起,各自有各自的规则,终究会有冲突的,如下就是冲突. ...
- HTTP、HTTP2
HTTP.HTTP2.0.SPDY.HTTPS 你应该知道的一些事 原文链接:http://www.alloyteam.com/2016/07/httphttp2-0spdyhttps-readi ...
- JavaScript中的slice,splice,substr,substring,split的区别
万恶的输入法,在sublime中会显示出繁体字,各位看官见谅. 1.slice()方法:该方法在数组和string对象中都拥有. var a = [1,2,3,4,5,6]; var s = 'thi ...
- [转]ASP.NET应用程序生命周期趣谈(一)
这几天一直在看ASP.NET应用程序生命周期,真是太难了,我理解起来费了劲了,但偏偏它又是那么重要,所以我希望能给大家带来一篇容易理解又好用的文章来帮助学习ASP.NET应用程序生命周期.这篇就是了. ...
- iOS 小谈开发者中的个人、组织(公司、企业)账号
苹果对开发者主要分为3类:个人.组织(公司.企业).教育机构.即: 1.个人(Individual) 2.组织(Organizations) 组织类又分为2个小类: (1)公司(Company) (2 ...
- WinSetupFromUSB - 制作多系统U盘安装All-In-One的利器
单U盘玩多个操作系统,这下有福了! 官网最新的下载地址:http://www.winsetupfromusb.com/files/download-info/winsetupfromusb-1-7-e ...
- 探索逻辑事务 TransactionScope
一.什么是TransactionScope? TransactionScope即范围事务(类似数据库中的事务),保证事务声明范围内的一切数据修改操作状态一致性,要么全部成功,要么全部失败回滚. MSD ...