asp.net 文件上传
前台js
- <script type="text/javascript">
- window.onload = function () {
- document.getElementById('add').onclick = function () {
- var file1 = document.getElementById('file1');
- if (file1.value == "") {
- return;
- }
- var ext = /\.[^\.]+$/.exec(file1.value.toLowerCase());
- if (ext == '.jpeg' || ext == '.jpg' || ext == '.bmp') {
- return;
- }
- else {
- alert('上传文件格式错误!');
- return false;
- }
- }
- };
- </script>
前台aspx
- <form id="form1" action="AddNews.aspx" method="post" enctype="multipart/form-data">
- 图片:<input type="file" name="imgFile" id="file1" />
- <input id="add" type="submit" value="提交" />
后台
- string image;
- string smallImage;
- HttpPostedFile file = Request.Files["imgFile"]; //默认4M大小以内,超出延迟无法跳转。
- UploadPic(file, out image, out smallImage);
- private bool UploadPic(HttpPostedFile file, out string image, out string smallImage)
- {
- image = "";
- smallImage = "";
- if (file != null)
- {
- //获取文件扩展名
- string ext = System.IO.Path.GetExtension(file.FileName);
- //上传文件类型判断
- if ((ext == ".jpg" || ext == ".jpeg" || ext == ".bmp" || ext == ".png") && file.ContentType.StartsWith("image"))
- {
- //通过字符串哈希码,创建多层目录随机保存路径。
- string guid = Guid.NewGuid().ToString();
- int ram = guid.GetHashCode();
- int dirA = ram & 0xf; //0xf '1111' 整数15
- int dirB = (ram >> ) & 0xf; //ram 右移4位
- int dirC = (ram >> ) & 0xf; //ram 右移8位
- //path 文件目录
- string bigPic = string.Format("Upload/BigPic/{0}/{1}/{2}/", dirA.ToString(), dirB.ToString(), dirC.ToString());
- string smallPic = string.Format("Upload/SmallPic/{0}/{1}/{2}/", dirA.ToString(), dirB.ToString(), dirC.ToString());
- //out参数 设值 保存图片路径
- image = System.IO.Path.Combine(bigPic, guid + "_" + file.FileName);
- smallImage = System.IO.Path.Combine(smallPic, guid + "_small" + file.FileName);
- //创建目录
- System.IO.Directory.CreateDirectory(Server.MapPath(bigPic));
- System.IO.Directory.CreateDirectory(Server.MapPath(smallPic));
- //创建缩略图
- Image img = Image.FromStream(file.InputStream);
- Image smallImg = new Bitmap(, * img.Height / img.Width);
- Graphics g = Graphics.FromImage(smallImg);
- g.DrawImage(img, , , smallImg.Width, smallImg.Height);
- //保存文件
- file.SaveAs(System.IO.Path.Combine(Server.MapPath("~/NewsAdmin/"), image));
- smallImg.Save(System.IO.Path.Combine(Server.MapPath("~/NewsAdmin/"), smallImage));
- }
- else
- {
- return false;
- }
- }
- return true;
- }
asp.net 文件上传的更多相关文章
- asp.net 文件上传示例整理
ASP.NET依托.net framework类库,封装了大量的功能,使得上传文件非常简单,主要有以下三种基本方法. 方法一:用Web控件FileUpload,上传到网站根目录. 代码如下 复制代码 ...
- IIS7.5修改asp的文件上传限制方法
第一.IIS7.5修改asp的文件上传限制方法 1.打开IIS 2.打开面板中的应用程序开发 asp 3.找到最后的限制属性 4.修改其中的最大请求实体主体限制的值:默认为200000字节,等于195 ...
- asp.net文件上传进度条研究
文章:asp.net 文件上传进度条实现代码
- Cookie操作、ASP.Net文件上传HttpPostedFile
概述 Cookie用来保存客户浏览器请求服务器页面的请求信息. 我们可以存放非敏感的用户信息,保存时间可以根据需要设置.如果没有设置Cookie失效日期,它的生命周期保存到关闭浏览器为止,Cookie ...
- [转载]windows 7 IIS 7.5 ASP.Net 文件上传大小限制
原文出处: 原文作者:云中岳 原文链接:http://www.cnblogs.com/netlover/archive/2011/07/08/Win7_IIS_Upload.html IS 7 默认文 ...
- 你以为的ASP.NET文件上传大小限制是你以为的吗
我们以为的文件大小限制 我们大家都知道ASP.NET为我们提供了文件上传服务器控件FileUpload,默认情况下可上传的最大文件为4M,如果要改变可上传文件大小限制,那么我们可以在web.confi ...
- ASP.NET文件上传大小的限制解决方案
我们大家都知道ASP.NET为我们提供了文件上传服务器控件FileUpload,默认情况下可上传的最大文件为4M,如果要改变可上传文件大小限制,那么我们可以在web.config中的httpRunti ...
- 2014.12.13 ASP.NET文件上传
一.文件上传:(一)上传到硬盘文件夹1.最简单的上传. [HTML代码] <asp:FileUpload ID="FileUpload1" runat="serve ...
- ASP中文件上传组件ASPUpload介绍和使用方法
[导读]要实现该功能,就要利用一些特制的文件上传组件.文件上传组件网页非常多,这里介绍国际上非常有名的ASPUpload组件 1 下载和安装ASPUpload 要实现该功能,就要利用一些特制的文件上 ...
- ASP.NET文件上传和下载
大学最近作出相关的需求进行上传和下载文件的网站(求为:站点发布的通知,在后台要能给每一个通知加入附件.在前台要能显示并下载附件),之前仅仅是学习过关于上传的 理论知识,这里实践了一下下,与大家分享一下 ...
随机推荐
- netty通用解码器LengthFieldBasedFrameDecoder
2.2.4. LengthFieldBasedFrameDecoder解码器 了解TCP通信机制的读者应该都知道TCP底层的粘包和拆包,当我们在接收消息的时候,显示不能认为读取到的报文就是个整包消息, ...
- Windows下免费软件的首选推荐
PS:以下按装机顺序排列,“|”号后面是备选软件. 启动引导:EasyBCD 虚拟机:VirtualBox Linux:Zorin | Linux Mint(Mate) | Ubuntu 驱动工具:驱 ...
- 内核交互--sysfs
文档介绍:http://lxr.linux.no/linux+v2.6.37/Documentation/filesystems/sysfs.txt The sysfs Filesystem Sysf ...
- libubox组件(1)——usock
一:相关API介绍 1.相关源码文件:usocket.h usocket.c 2.类型标志 1: #define USOCK_TCP 0 2: #define USOCK_UDP 1 3: #defi ...
- finsh初步
一. finsh在RT-Thread中被设计成一个独立的线程,它试图从外部设备中获得用户的输入,然后对用户命令进行解析执行. 正确使用finsh需要一个关联过程: rt_hw_board_init() ...
- Editing a Book UVA - 11212 IDA*
You have n equal-length paragraphs numbered 1 to n . Now you want to arrange them in the order of 1 ...
- 大数据(3) - 高可用 HDFS HA
HDFS HA高可用 1 HA概述 1)所谓HA(high available),即高可用(7*24小时不中断服务). 2)实现高可用最关键的策略是消除单点故障.HA严格来说应该分成各个组件的HA机制 ...
- Word常用操作笔记
总忘,在这记一下,以下以WPS为例,WORD大同小异,别看网上那些乱写的,就哥这个稳定好使: 1. 在指定页面及其后开始插入页码 2. 修改页码中的总页数 -> 选中总页数的域 -> SH ...
- 分享一个编译期输出TODO,FIXME列表的宏
效果,双击能跳到相应位置: >------ Build started: Project: TestVS2013, Configuration: Debug Win32 ------ > ...
- Ubuntu 下Apache安装和配置2
在Ubuntu上安装Apache,有两种方式:1 使用开发包的打包服务,例如使用apt-get命令:2 从源码构建Apache.本文章将详细描述这两种不同的安装方式. 方法一:使用开发包的打包服务—— ...