asp.net一般处理程序下载文件

///程序页面

public class ProcessUpload : IHttpHandler
{

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//1.获取用户上传的文件
if (context.Request.Files.Count > 0)
{
//获取第一个文件域中上传上来的文件
HttpPostedFile fileData = context.Request.Files[0];

//判断上传上来的文件字节数是否大于0
if (fileData.ContentLength > 0)
{
string ext = Path.GetExtension(fileData.FileName);

if ((ext == ".jpg" || ext == ".jpeg" || ext == ".png" || ext == ".gif" || ext == ".bmp") && fileData.ContentType.ToLower().StartsWith("image"))
{
#region 计算文件名称和目录,保存文件

//通过guid+旧文件名,计算得到一个新的文件名
string new_fileName = Guid.NewGuid().ToString() + "_" + Path.GetFileName(fileData.FileName);

//获取当前new_fileName的哈希码,就是一个整数。
int hash_code = new_fileName.GetHashCode();
//2.使用该整数和二进制值"1111"(也就是16进制值:0xf)与,获取当前整数的最后4为值。
int dir1 = hash_code & 0xf;//第一层目录
//任何类都是继承自object类。object类中有一个方法GetHashCode(),获取当前对象的哈希码。
//将原始的hash_code值向右移动4位。、
hash_code = hash_code >> 4;

int dir2 = hash_code & 0xf;//得到了第二层目录

//路径拼接
string targetFilePath = Path.Combine(context.Request.MapPath("upload/"), dir1.ToString(), dir2.ToString());
//判断当前文件夹是否存在,如果不存在则创建文件夹
if (!Directory.Exists(targetFilePath))
{
Directory.CreateDirectory(targetFilePath);
}
//2.将用户上传的文件另存为到服务器的目录下。
//将文件名与目录拼接。
targetFilePath = Path.Combine(targetFilePath, new_fileName);
fileData.SaveAs(targetFilePath);

#endregion

context.Response.Write("文件上传成功!");
}
else
{
context.Response.Write("非法的文件!");
}
}
}
}

*******************************************

html页面

<!-- 通过一般处理程序实现下载!-->
<ul>
<li><a href="ProcessDownload.ashx?filename=1.cs">1.cs</a></li>
<li><a href="ProcessDownload.ashx?filename=2.xls">2.xls</a></li>
<li><a href="ProcessDownload.ashx?filename=3.gif">3.gif</a></li>
<li><a href="ProcessDownload.ashx?filename=5.txt">5.txt</a></li>
<li><a href="ProcessDownload.ashx?filename=六六六.zip">六六六.zip</a></li>
<li><a href="ProcessDownload.ashx?filename=7.exe">7.exe</a></li>
<li><a href="ProcessDownload.ashx?filename=8.pdf">8.pdf</a></li>
</ul>

时间: 2024-12-07 22:38:48

asp.net一般处理程序下载文件的相关文章

asp.net C#实现下载文件的六种方法实例

protected void Button1_Click(object sender, EventArgs e)  {  /*  微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite  下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题.  代码如下:  */ Response.ContentType = "application/x-zip-compressed";  Response

ASP.NET 一般处理程序 接收文件上传

public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; StringBuilder sb = new StringBuilder(); string resultcode = null; string errormsg = null; string paths = ""; string names = ""; st

Asp.Net Web Api 2 实现多文件打包并下载文件示例源码_转

一篇关于Asp.Net Web Api下载文件的文章,之前我也写过类似的文章,请见:<ASP.NET(C#) Web Api通过文件流下载文件到本地实例>本文以这篇文章的基础,提供了ByteArrayContent的下载以及在下载多个文件时实现在服务器对多文件进行压缩打包后下载的功能.关于本文中实现的在服务器端用.NET压缩打包文件功能的过程中,使用到了一个第方类库:DotNetZip,具体的使用将在正文中涉及.好了,描述了这么多前言,下面我们进入本文示例的正文. 一.创建项目 1.1 首先创

HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。

解决问题:由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. WindowServer2012服务器,添加角色安装完.netframework和iis之后,运行aspx页面就报如下错误: HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. ?可能是缺少处理程序映射.默认情况下,静态文件处理程序将处理所有内容.?您要使用

IIS中预览错误问题的解决办法(HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射 )

控制面板 程序 打开或关闭windows程序 Internet信息服务 万维网服务 应用程序开发功能 勾选.net  扩展性    ASP    ASP.net 按照这个顺序就可以解决该问题. IIS中预览错误问题的解决办法(HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射 ),布布扣,bubuko.com

解决问题:由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。

WindowServer2012服务器,添加角色安装完.netframework和iis之后,运行aspx页面就报如下错误: HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. ?可能是缺少处理程序映射.默认情况下,静态文件处理程序将处理所有内容.?您要使用的功能可能尚未安装.?没有为网站或应用程序启用相应的 MIME 映射.(警告: 请不要为用户不应下载的 .ASPX 页或 .c

Asp.net mvc 下载文件

前言 最近有需求需要下载文件,可能是image的图片,也可能是pdf报告,也可能是微软的word或者excel文件. 这里就整理了asp.net mvc 和asp.net webapi 下载的方法 ASP.NET MVC 下载 在mvc中,control的returnresult有FileResult,描述如下: System.Web.Mvc.FileResult System.Web.Mvc.FileContentResult System.Web.Mvc.FilePathResult Sys

HTTP 错误 404.3 – Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。

今天,在vs2013中新建了一个placard.json文件,当我用jq读取它的时候,去提示404,直接在浏览器访问这个文件,提示: HTTP 错误 404.3 – Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. 解决方案:进入IIS

菜刀ASP 下载文件抓包

http://blog.csdn.net/webxscan     神龙 打开文件 Send: Return Code: 0x00000000 webxscan=Eval   ("Execute(""On+Error+Resume+Next:Function+bd%28byVal+s%29%3AFor+i%3D1+To+Len%28s%29+Step+2%3Ac%3DMid%28s%2Ci%2C2%29%3AIf+IsNumeric%28Mid%28s%2Ci%2C1%29%