前台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 文件上传的更多相关文章

  1. asp.net 文件上传示例整理

    ASP.NET依托.net framework类库,封装了大量的功能,使得上传文件非常简单,主要有以下三种基本方法. 方法一:用Web控件FileUpload,上传到网站根目录.  代码如下 复制代码 ...

  2. IIS7.5修改asp的文件上传限制方法

    第一.IIS7.5修改asp的文件上传限制方法 1.打开IIS 2.打开面板中的应用程序开发 asp 3.找到最后的限制属性 4.修改其中的最大请求实体主体限制的值:默认为200000字节,等于195 ...

  3. asp.net文件上传进度条研究

    文章:asp.net 文件上传进度条实现代码

  4. Cookie操作、ASP.Net文件上传HttpPostedFile

    概述 Cookie用来保存客户浏览器请求服务器页面的请求信息. 我们可以存放非敏感的用户信息,保存时间可以根据需要设置.如果没有设置Cookie失效日期,它的生命周期保存到关闭浏览器为止,Cookie ...

  5. [转载]windows 7 IIS 7.5 ASP.Net 文件上传大小限制

    原文出处: 原文作者:云中岳 原文链接:http://www.cnblogs.com/netlover/archive/2011/07/08/Win7_IIS_Upload.html IS 7 默认文 ...

  6. 你以为的ASP.NET文件上传大小限制是你以为的吗

    我们以为的文件大小限制 我们大家都知道ASP.NET为我们提供了文件上传服务器控件FileUpload,默认情况下可上传的最大文件为4M,如果要改变可上传文件大小限制,那么我们可以在web.confi ...

  7. ASP.NET文件上传大小的限制解决方案

    我们大家都知道ASP.NET为我们提供了文件上传服务器控件FileUpload,默认情况下可上传的最大文件为4M,如果要改变可上传文件大小限制,那么我们可以在web.config中的httpRunti ...

  8. 2014.12.13 ASP.NET文件上传

    一.文件上传:(一)上传到硬盘文件夹1.最简单的上传. [HTML代码] <asp:FileUpload ID="FileUpload1" runat="serve ...

  9. ASP中文件上传组件ASPUpload介绍和使用方法

    [导读]要实现该功能,就要利用一些特制的文件上传组件.文件上传组件网页非常多,这里介绍国际上非常有名的ASPUpload组件 1 下载和安装ASPUpload  要实现该功能,就要利用一些特制的文件上 ...

  10. ASP.NET文件上传和下载

    大学最近作出相关的需求进行上传和下载文件的网站(求为:站点发布的通知,在后台要能给每一个通知加入附件.在前台要能显示并下载附件),之前仅仅是学习过关于上传的 理论知识,这里实践了一下下,与大家分享一下 ...

随机推荐

  1. 使用nmap 验证多种漏洞

    0x00 前言 大家都知道在平时的漏扫中,AWVS.APPSCAN.Netspark.webspectort等漏扫工具扫描出来的漏洞问题往往存在误报,这时我们就需要进行人工手动验证漏洞,这里我们有两种 ...

  2. Pairs Forming LCM 在a,b中(a,b<=n)(1 ≤ n ≤ 10^14),有多少组(a,b) (a<b)满足lcm(a,b)==n; lcm(a,b)=p1 ^ max(a1,b1) * p2 ^ max(a2,b2) *..........*pn ^ max(an,bn)

    转自:http://www.cnblogs.com/shentr/p/5285407.html http://acm.hust.edu.cn/vjudge/contest/view.action?ci ...

  3. Android开发学习秘籍笔记(十九)

    吼.花了2天最后做出了一个类似于蓝牙串口助手功能的小程序,事实上也是实习公司的要求---有一个蓝牙无线扫描枪,要求终端能够通过蓝牙连接到该设备,而且蓝牙无线扫描枪扫描二维码或者条形码的时候能够将二维码 ...

  4. qt 4.8.5 vs 2012编译

    Download Qt 4.8.3 source code from http://qt-project.org/downloads Go to mkspecs\win32-msvc2010. Ope ...

  5. 通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。

    通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML. JavaScript 能够改变页面中的所有 HTML 元素 JavaScript 能够改变页面中的所有 HTML ...

  6. MySQL的语法高级之SELECT

    1.语法:select 字段列表 from  子句 [where 子句][group by 子句][ order by 子句][having 子句][limit 子句]; 注解: 1.where子句对 ...

  7. python数据分析之numpy

    知乎:https://zhuanlan.zhihu.com/p/26514493 numoy安装:http://blog.csdn.net/wyc12306/article/details/53705 ...

  8. jmeter 参数值写入到指定的文件中[如获取token写入某文件为免登录备用]

    1.编写java 类AppendFile ,代码如下 import java.io.File;import java.io.FileWriter;import java.io.IOException; ...

  9. ios关于数据的存储

    本文转载至http://blog.csdn.net/chen505358119/article/details/9278539             这里我总结了一下数据的存储方式,一是保存在沙盒里 ...

  10. Python 内置函数、作用域、闭包、递归

    一.内置函数如何使用 help()一下: 如想看min()咋用?在shell中:help(min) 二.部分内置函数 (一).排序:sorted() li = [(1, 2, 3, 4), (7, 8 ...