FileUpload - 选择文件,不能执行上传功能,通过点击按钮实现上传

默认选择类型为所有类型

  1. //<上传>按钮
  2. void Button1_Click(object sender, EventArgs e)
  3. {
  4. //判断是否选中文件
  5. if (FileUpload1.FileName.Length <= )
  6. {
  7. Label1.Text = "未选中任何文件!";
  8. return;
  9. }
  10. //<上传> 功能代码
  11. //------------------------------------------------------
  12. //新建文件夹Uploads,设置保存文件名和类型abc.txt
  13. string path = "Uploads/abc.txt";
  14. //映射绝对路径(Server.MapPath())
  15. string endpath = Server.MapPath(path);//映射绝对路径
  16. //展示上传保存文件夹绝对路径
  17. Label1.Text = endpath;
  18. //保存到服务器(SaveAs())
  19. FileUpload1.SaveAs(endpath);//保存到绝对路径
  20. //------------------------------------------------------
  21. }

<上传>按钮

1、如何判断是否选中文件?
FileUpload.FileName -
选中文件的文件名,如果长度不大于0,那么说明没选中任何文件
js - f.value.length

2、如何保存到服务器上?
FileUpload.SaveAs("绝对路径");

3、如何获得绝对路径?(李献策lxc)
先编写相对路径 - "UpLoads/abc.txt"
将相对路径映射成绝对路径 - Server.MapPath("UpLoads/abc.txt");

-----------------------------------------------------------------------------

在上述方法中,只能上传.txt文件,并且名字只能是abc。如何保留原有的名字和文件类型?

  1. //新建文件夹Uploads,设置保存文件名 + 选择的文件名
  2. string path = "Uploads/"+FileUpload1.FileName;

相同的文件会被覆盖。如何保持文件的单一性不被覆盖?

文件名前+登录用户名+当前时间(精确到毫秒)

  1. //新建文件夹Uploads,设置保存文件名
  2. 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 选择文件时显示的类型:

  1. <asp:FileUpload ID="FileUpload1" runat="server" accept=".jpg,.png,.jpeg,.txt" />

  用户可以公共选择“所有文件”来选择其他类型的文件,如何限制?

JS代码:

  1. <script type="text/javascript">
  2. //<上传>按钮点击事件(JS优先级最高)
  3. document.getElementById("Button1").onclick = function () {
  4. //获取选中的文件名
  5. var filename = document.getElementById("FileUpload1").value;
  6. //截取文件名后4位或5位
  7. var n = filename.substr(filename.length - , );
  8. var m = filename.substr(filename.length - , );
  9. //判断 n 或 m 不满足条件则终止执行,否则继续
  10. if (n !== ".txt" && n !== ".jpg" && n !== ".png" && m !== ".jpeg")
  11. {
  12. alert("请选择正确的文件格式!");
  13. return false;
  14. }
  15. };
  16. </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配置文件中:

  1. <configuration>
  2. <system.web>
  3. <compilation debug="false" targetFramework="4.0" />
  4. <!--设置最大上传文件大小40M,单位KB-->
  5. <httpRuntime maxRequestLength="" />
  6. </system.web>
  7. </configuration>

注意!不要扩的太多,否则多人同时上传大文件会造成服务器内存不足!

限制大小:

  C#端限制:

  1. //<上传>按钮
  2. void Button1_Click(object sender, EventArgs e)
  3. {
  4. //判断是否选中文件
  5. if (FileUpload1.FileName.Length <= )
  6. {
  7. Label1.Text = "未选中任何文件!";
  8. return;
  9. }
  10.  
  11. //判断选中文件的长度大小是否大于4M(默认单位为B)
  12. if (FileUpload1.PostedFile.ContentLength > * * )
  13. {
  14. Label1.Text = "文件长度过长!!";
  15. return;
  16. }
  17.  
  18. //<上传> 功能代码
  19. //------------------------------------------------------
  20. //新建文件夹Uploads,设置保存文件名
  21. string path = "Uploads/" + DateTime.Now.ToString("yyyyMMddhhmmssms") + FileUpload1.FileName;
  22. //映射绝对路径(Server.MapPath())
  23. string endpath = Server.MapPath(path);//映射绝对路径
  24. //展示上传保存文件夹绝对路径
  25. Label1.Text = endpath;
  26. //保存到服务器(SaveAs())
  27. FileUpload1.SaveAs(endpath);//保存到绝对路径
  28. //------------------------------------------------------
  29. }

C#端判断文件是否在允许范围内

  缺点:<上传>点击后,系统是先提交给后台,然后再进行判断,提交给后台速度受影响

  JS端限制:

  1. <script type="text/javascript">
  2. //<上传>按钮点击事件(JS优先级最高)
  3. document.getElementById("Button1").onclick = function () {
  4. //判断要上传的文件的长度大小
  5. var f = document.getElementById("FileUpload1");
  6. if (f.files[].size > * * )
  7. {
  8. Label1.Text = alert("文件长度过长!!");
  9. return;
  10. }
  11.  
  12. //获取选中的文件名
  13. var filename = document.getElementById("FileUpload1").value;
  14. //截取文件名后4位或5位
  15. var n = filename.substr(filename.length - , );
  16. var m = filename.substr(filename.length - , );
  17. //判断 n 或 m 不满足条件则终止执行,否则继续
  18. if (n !== ".txt" && n !== ".jpg" && n !== ".png" && m !== ".jpeg")
  19. {
  20. alert("请选择正确的文件格式!");
  21. return false;
  22. }
  23. };
  24. </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控件的更多相关文章

  1. Web大文件上传(断点续传)控件-Xproer.HttpUploader6-安装教程

      安装教程: IE8控件安装教程 IE9控件安装教程 Firefox控件安装教程 Chrome控件安装教程 Chrome 45+控件安装教程 相关问题: 提示Runtime Error错误 360拦 ...

  2. 自制文件上传JS控件,支持IE、chrome、firefox etc.

    (function() { if (window.FileUpload) { return; } window.FileUpload = function (id, url) { this.id = ...

  3. Webform之FileUpload(上传按钮控件)简单介绍及下载、上传文件时图片预览

    1.FileUpload上传控件:(原文:http://www.cnblogs.com/hide0511/archive/2006/09/24/513201.html) FileUpload 控件显示 ...

  4. Web大文件(夹)上传(断点续传)控件-Xproer.HttpUploader6

    版权所有 2009-2017荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/up6.2/in ...

  5. php文件夹上传下载控件分享

    用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个php文件夹上传下载的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下是实例的部分脚本文件 这里我先 ...

  6. asp.net文件夹上传下载控件分享

    用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个需要在.net环境下大文件上传的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下是此例中各种脚本文件 ...

  7. java文件夹上传下载控件分享

    用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个需要在JAVA.MyEclipse环境下大文件上传的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下 ...

  8. Web大文件(夹)上传(断点续传)控件发布-Xproer.HttpUploader6

    版权所有 2009-2017荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/up6.2/in ...

  9. webform文件上传、图片水印、验证码

    文件上传: 所用控件:FileUpload 使用时的思路: 1.判断用户是否选中了文件 FileUpload.FileName获取选中的文件名,判断长度,如果长度大于零就代表已经选择了文件 JS端:通 ...

随机推荐

  1. C#开发微信门户及应用(15)-微信菜单增加扫一扫、发图片、发地理位置功能

    前面介绍了很多篇关于使用C#开发微信门户及应用的文章,基本上把当时微信能做的接口都封装差不多了,微信框架也积累了不少模块和用户,最近发现微信公众平台增加了不少内容,特别是在自定义菜单里面增加了扫一扫. ...

  2. python 学习笔记 -logging模块(日志)

    模块级函数 logging.getLogger([name]):返回一个logger对象,如果没有指定名字将返回root loggerlogging.debug().logging.info().lo ...

  3. java转换 HTML字符实体,java特殊字符转义字符串

    为什么要用转义字符串? HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用.这些符号是不显示在我们最终看到的网页里的,那如果我们希 ...

  4. java接口调用——webservice就是一个RPC而已

    很多新手一听到接口就蒙逼,不知道接口是什么!其实接口就是RPC,通过远程访问别的程序提供的方法,然后获得该方法执行的接口,而不需要在本地执行该方法.就是本地方法调用的升级版而已,我明天会上一篇如何通过 ...

  5. jQuery+css3侧边栏导航菜单

    效果体验:http://hovertree.com/texiao/jquery/37/ 代码如下: <!doctype html> <html lang="zh" ...

  6. O365(世纪互联)SharePoint 之使用列表库发布新闻

    前言 上一篇文章,我们简单介绍了如何个性化O365的SharePoint站点,本文我们演示一下如何使用SharePoint自带的列表应用程序,定制一个公司新闻的栏目. 其间,用到的主要工具是Share ...

  7. 聊天气泡 button backgroundImage uiimage 拉伸 stretchableImageWithLeftCapWidth: 方法的使用

    - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCap ...

  8. Android开发学习—— Service 服务

    Service运行于后台的一个组件,用来运行适合运行在后台的代码,服务是没有前台界面,可以视为没有界面的activity. 服务可以被手动关闭,不会重启,但是如果被自动关闭,内存充足就会重启. sta ...

  9. 使用virtualenv搭建python3开发环境

    问题描述 环境: CentOS6.5 想在此环境下使用python3进行开发,但CentOS6.5默认的python环境是2.6.6版本. 之前的做法是直接从源码安装python3,替换掉现有的开发环 ...

  10. [Bind(Exclude = "OrderId")][ScaffoldColumn(false)]

    [Bind(Exclude = "OrderId")] 的意思是:View里的Model,在你提交给 Action时,不会绑定到Action的参数Model,默认它会绑定. mvc ...