【文件上传】
2023-09-14 09:00:04 时间
html前台:
<body> <form id="form1" enctype="multipart/form-data" method="post" action="Handler1.ashx"> <input type="file" name="myfile" value="123" /><br/> <input type="submit" name="file" /> </form> </body>
注意:enctype="multipart/form-data"设置后才能够提交服务器(一般处理程序) method="post"的设置
一般处理程序ashx:
public class Handler1 : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; //接收客户端上传文件 HttpFileCollection fct = context.Request.Files; if (fct.Count > 0) { HttpPostedFile hpf = fct[0]; //获取文件扩展名 string ext = System.IO.Path.GetExtension(hpf.FileName); Random red = new Random(); string date = DateTime.Now.ToString("yyMMddhhmmss"); string filename = context.Request.MapPath("~/Image/" + date + red.Next(1000, 10000) + ext); //string Filename = System.IO.Path.GetFileName(hpf.FileName); //保存文件 hpf.SaveAs(filename); context.Response.Write("上传文件成功"); } else { context.Response.Write("请上传文件"); } } public bool IsReusable { get { return false; } } }
这个不能防止空文件上传和格式控制:(图片格式可也用js代码判断,基于给户交互效果)
修改后:
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; //接收客户端上传文件 HttpFileCollection fct = context.Request.Files; if (fct.Count > 0) { HttpPostedFile hpf = fct[0]; if (hpf.ContentLength > 0)//防止用户空文件上传 { if (hpf.ContentType == "image/jpeg" || hpf.ContentType == "image/png") { //获取文件扩展名 string ext = System.IO.Path.GetExtension(hpf.FileName); Random red = new Random(); string date = DateTime.Now.ToString("yyMMddhhmmss"); string filename = context.Request.MapPath("~/Image/" + date + red.Next(1000, 10000) + ext); //string Filename = System.IO.Path.GetFileName(hpf.FileName); //保存文件 hpf.SaveAs(filename); context.Response.Write("上传文件成功"); } else { context.Response.Write("禁止上传!"); } } else { context.Response.Write("上传失败。"); } } else { context.Response.Write("请上传文件"); } }
js控制:
<script type="text/javascript"> function checkext() { var file = document.getElementById("file").value; var ext=file.substr(file.lastIndexOf(".")+1); if (ext.toLowerCase() == "jpg" || ext.toLowerCase() == "png") { return true; } else { alert("禁止上传"); return false; } } </script>
控制文件上传大小:
在web.confige中<system.web>节点下配置:
<httpRuntime maxRequestLength="1024000"/>
相关文章
- Django普通文件上传
- oracle导出dmp文件的2种方法
- .7z.001,.7z.002这样的文件如何解压
- Python遍历路径下文件并转换成UTF-8编码
- [转]解决Eclipse中编辑xml文件的智能提示问题
- 計量文件夾大小
- strut 多文件上传
- 【问题解决方案】git中的文件的重命名
- ajax利用html5新特性带进度条上传文件
- Python暴力破解受密码保护的zip/rar文件
- Visual Studio 2013 无法使用:在文件中查找(Ctrl+Shift+F)
- 如何使用 ABAP 代码解析 XML 文件
- atitit.D&D drag&drop拖拽文件到界面功能 html5 web 跟个java swing c#.net c++ 的总结
- Atitit..文件上传组件选型and最佳实践总结(3)----断点续传控件的实现
- 上传中文文件到linux文件出现乱码问题的解决方案
- 文件上传
- 成功解决LINK : fatal error LNK1181: 无法打开输入文件“avdevice.lib” error: command 'D:Program Files (x86)Micr
- PHP 文件上传
- 补习系列(11)-springboot 文件上传原理
- 怎样清空文件上传控件里的选定文件(路径)
- C++ 解压文件及文件夹 使用zlib开源库
- QT打开文件夹或文件,选择文件夹或者选择文件
- dreamwaver的动态相关文件 工具栏搜索
- 黑马day15 文件上传&apche的工具包
- 本地文件上传至docker容器 文件挂载
- 读取properties文件并获取属性值
- 万能文件转换器:FileStar-2022
- Springboot+WebUploader优雅实现超大文件的上传(一)
- [springMVC学习]10、文件上传和下载
- 需10道题轻松掌握Python文件处理 | Python技能树征题