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文件上传和下载
大学最近作出相关的需求进行上传和下载文件的网站(求为:站点发布的通知,在后台要能给每一个通知加入附件.在前台要能显示并下载附件),之前仅仅是学习过关于上传的 理论知识,这里实践了一下下,与大家分享一下 ...
随机推荐
- MYSQL分区表功能测试简析
1.查看Mysql版本是否支持分区 SHOW VARIABLES LIKE '%partition%'; +-------------------+-------+ | Variable_nam ...
- C++之类的静态成员变量和静态成员函数
static静态成员函数 在类中.static 除了声明静态成员变量,还能够声明静态成员函数. 普通成员函数能够訪问全部成员变量.而静态成员函数仅仅能訪问静态成员变量. 我们知道.当调用一个对象的成员 ...
- webpack 3.x plugins
uglifyjs-webpack-plugin 压缩代码,webpack自带 const uglify = require('uglifyjs-webpack-plugin'); plugins:[ ...
- Eclipse 透视图(Perspective)
什么是透视图? 透视图是一个包含一系列视图和内容编辑器的可视容器.默认的透视图叫 java. Eclipse 窗口可以打开多个透视图,但在同一时间只能有一个透视图处于激活状态. 用户可以在两个透视图之 ...
- -webkit-transition: all .2s ease-in-out;
W3C标准中对CSS3的transition这是样描述的:CSS的transition允许CSS的属性值在一定的时间区间内平滑地过渡.这种效果可以在鼠标单击.获得焦点.被点击或对元素任何改变中触发,并 ...
- day11函数的进阶动态参数,命名空间,作用域,第一类对象
一.习题收藏 5.写函数,计算传入字符串中[数字].[字母].[空格] 以及 [其他]的个数,并返回结果. # def func4(s): # dic = { # 'num':0,'alpha':0, ...
- linux 下Shell编程(四)
for循环应用实例 for 循环可以对一个记录集中地数据依次集中地数据依次进行处理. #!/bin/bash #4.13.sh for clear #看下图区别 for((i=1:i<1 ...
- Kotlin——中级篇(一):类(class)详解
在任何一门面向对象编程的语言里,类(class)是非常基础.但也是非常重要的一项组成,通俗的说就是万般皆对象,而所说的对象就是我们生成的类.Kotlin也是如此,下面详细为大家介绍Kotlin中的类的 ...
- EasyPlayer.js网页全终端播放器安装使用文档
EasyPlayer.js 集 rtmp, hls, flv, websocket 于一身的网页直播/点播播放器, 使用简单, 功能强大 属性(Property) video-url 视频流地址 St ...
- C语言8.3冒泡排序
8.3.1 例8-5 题目:输入n个正整数,将他们从小到大排序后输出,要求使用冒泡排序法. 而在自己抄写代码的时候,出现了以下问题: # include<stdio.h> void bub ...