//<上传>按钮void Button1_Click(object sender, EventArgs e){//判断是否选中文件if (FileUpload1.FileName.Length <= 0){Label1.Text = "未选中任何文件!";return;}//<上传> 功能代码//------------------------------------------------------//新建文件夹Uploads,设置保存文件名和类型abc.txtstring 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 - 4, 4);var m = filename.substr(filename.length - 5, 5);//判断 n 或 m 不满足条件则终止执行,否则继续if (n !== ".txt" && n !== ".jpg" && n !== ".png" && m !== ".jpeg"){alert("请选择正确的文件格式!");return false;}};
</script>

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

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="40960" /></system.web>
</configuration>

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

限制大小:

//<上传>按钮void Button1_Click(object sender, EventArgs e){//判断是否选中文件if (FileUpload1.FileName.Length <= 0){Label1.Text = "未选中任何文件!";return;}//判断选中文件的长度大小是否大于4M(默认单位为B)if (FileUpload1.PostedFile.ContentLength > 4 * 1024 * 1024){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);//保存到绝对路径//------------------------------------------------------}

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

  JS端限制:

<script type="text/javascript">//<上传>按钮点击事件(JS优先级最高)document.getElementById("Button1").onclick = function () {//判断要上传的文件的长度大小var f = document.getElementById("FileUpload1");if (f.files[0].size > 4 * 1024 * 1024){Label1.Text = alert("文件长度过长!!");return;}//获取选中的文件名var filename = document.getElementById("FileUpload1").value;//截取文件名后4位或5位var n = filename.substr(filename.length - 4, 4);var m = filename.substr(filename.length - 5, 5);//判断 n 或 m 不满足条件则终止执行,否则继续if (n !== ".txt" && n !== ".jpg" && n !== ".png" && m !== ".jpeg"){alert("请选择正确的文件格式!");return false;}};
</script>

 优势:先进行判断再提交上传,不占用上传内存。

  注意: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;
}

转载于:https://www.cnblogs.com/baimangguo/p/9253325.html

C#-WebForm-文件上传-FileUpload控件相关推荐

  1. [共享]一个文件上传的控件,绝对是精品源码

    [共享]一个文件上传的控件,绝对是精品源码 前段时候在www.codeproject.com上看到一个文件上传的控件,觉得很好,共享给园子里的朋友. 原文链接:http://www.codeproje ...

  2. java多文件上传plupload控件实现多图片上传(二)

    接上篇 java多文件上传plupload控件实现多图片上传(一) 续写PluploadUtil 和 Plupload PO类,以及后台的action. 至此,可实现多文件上传功能. 上传文件Acti ...

  3. java 批量上传图片插件_java多文件上传plupload控件实现多图片上传(一)

    使用的是plupload-2.1.2 控件.网上资源挺多的,很好下载. plupload 官方地址 : http://www.plupload.com/ plupload 示例: http://www ...

  4. 大文件上传 NeatUpload 控件

    因为要做一个大文件上传的功能,所以搜索了下.找到一个控件NeatUpload 而且这个空间是开源的 官网为http://www.brettle.com/neatupload 于是到官网去下了控件.它里 ...

  5. WebForm(文件上传)

    WebForm(文件上传) 文件上传控件:FileUpload 一.基本上传 1.准备阶段:(1)准备保存路径 根目录:string s = "Uploads/aaa.txt"; ...

  6. ASP.NET上传文件管理控件

    一.引言 v2完成了将数据绑定在dataGrid上的任务,但是dataGrid毕竟是asp.net 1.x的工具,在asp.net 2.0里面,使用是gridveiw.接下来的问题就是将datagri ...

  7. [系列文章]上传文件管理控件v2

    一.引言: 开发v1的时候,遇到很多困难(因为我是新手),于是就上网找了一些资料. 其中,这篇<数据绑定的总结 >文章(http://www.cnblogs.com/qingtianyzl ...

  8. 【2017-05-30】WebForm文件上传。从服务端删除文件

    用 FileUpload控件进行上传文件. <asp:FileUpload ID="FileUpload1"  runat="server" /> ...

  9. ASP.Net Web表单文件上传FileUpLoad

    它是一个输入控制器,用于将文件上传到服务器.它在窗体上创建一个浏览按钮,该按钮弹出一个窗口以从本地计算机中选择文件. 要实现FileUpload,我们可以将其从Visual Studio的工具箱中拖动 ...

  10. Angular文件上传---fileUpload的使用

    2019独角兽企业重金招聘Python工程师标准>>> 文件上传在系统中是一个很常见的功能,现在将angular文件上传的代码总结一下.在此特别感谢同事陈卫兵提供的思路总结. 1.前 ...

最新文章

  1. 2011清华MBA备考全记录
  2. springcloud出现org.springframework.boot.context.properties.ConfigurationPropertie错误
  3. 为什么 那么多 前端开发者都想学 Vue.js
  4. java 操作db2_java操作DB2,增删改查
  5. 第 2 章 类加载子系统
  6. System.Management.ManagementException: 访问遭到拒绝的解决方案
  7. crtmpserver 配置说明_crtmpserver框架代码详解
  8. csrss.exe和winlogon.exe引起cpu居高不下的解决办法
  9. 利用图神经网络进行社交机器人检测
  10. python爬虫模拟登录之图片验证码
  11. AD使用总结4——PCB天线知识
  12. CentOS下安裝iRedMail
  13. 第五十三回 关云长义释黄汉升  孙仲谋大战张文远
  14. 【机器学习】Sklearn-cluster聚类方法
  15. 无刷直流电动机矢量控制(五)——开环调速原理(方波形式)
  16. 小程序调试技术详解(基于小猴小程序)
  17. STM8S003FP6 TIM4配置
  18. RK3399 4K 带宽不足[drm:vop_isr] ERROR POST_BUF_EMPTY irq err
  19. 【JMX】-----JMX概述
  20. Java中你最擅长什么_你最擅长的领域是什么

热门文章

  1. PIM SM建立SPT树过程与实验
  2. 计算机网络误区——VLAN中Access和Trunk原理详解
  3. Linux异常进程kill无效的解决办法
  4. 2011蓝桥杯--神秘的三位数
  5. CSS 属性篇(六):background-size属性
  6. 用 JMeter 测试 MySQL 数据库
  7. js中的object
  8. CSUOJ 1111 三家人
  9. UVALive 4725 Airport(二分)
  10. linux下rar-unrar命令使用