public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
StringBuilder sb = new StringBuilder();
string resultcode = null;
string errormsg = null;
string paths = "";
string names = "";
string title = "";
string FILEGUID = "";
if (context.Request.Files.Count == )
{
resultcode = "";
errormsg = "上传文件为空!";
sb.Append("{\"resultcode\":" + "\"" + resultcode + "\"");
sb.Append(",");
sb.Append("\"errormsg\":" + "\"" + errormsg + "\"");
sb.Append(",");
sb.Append("\"datas\":" + "{");
sb.Append("\"FilePath\":" + "\"" + paths + "\"");
sb.Append(",");
sb.Append("\"FileName\":" + "\"" + names + "\"");
sb.Append(",");
sb.Append("\"FileTitle\":" + "\"" + title + "\"");
sb.Append(",");
sb.Append("\"FileGuid\":" + "\"" + FILEGUID + "\"");
sb.Append("}");
sb.Append("}");
}
else
{
string guid = System.Guid.NewGuid().ToString("N"); string dir = context.Server.MapPath("~/TaskMobile/files/") + guid;
if (!System.IO.Directory.Exists(dir))
{
System.IO.Directory.CreateDirectory(dir);
} for (int i = ; i < context.Request.Files.Count; i++)
{
//获取上传的文件的对象
HttpPostedFile img = context.Request.Files[i]; //获取上传文件的名称
string s = img.FileName;
var strFileExtension = s.Substring(s.LastIndexOf('.') + , s.Length - s.LastIndexOf('.') - ).ToUpper();
String allowextension = System.Configuration.ConfigurationManager.AppSettings["AllowUploadFileType"];
if (allowextension.IndexOf(strFileExtension) >= )
{
int len = s.LastIndexOf(".") - s.LastIndexOf("\\") - ;
string fileName = s.Substring(s.LastIndexOf("\\") + , len);
string fullName = s.Substring(s.LastIndexOf("\\") + ); fileName = fileName.Replace(",", "");
fullName = fullName.Replace(",", "");
fullName = fullName.Replace(":", "");
//截取获得上传文件的名称(ie上传会把绝对路径也连带上,这里只得到文件的名称)
//string str = System.Guid.NewGuid().ToString("N")+ s.Substring(s.LastIndexOf(".") - 1); // s.Substring(s.LastIndexOf("\\") + 1);
string path = dir + "\\" + fullName;
//保存文件
img.SaveAs(path);
paths = HttpRuntime.AppDomainAppVirtualPath + "/TaskMobile/files/" + guid + "/" + fullName;
title = "/TaskMobile/files/" + guid + "/" + fullName;
names = fullName; //附件大写(单位KB)
int size = img.ContentLength / ;
//保存附件到文件表
FILEGUID = new NDFILES().AddFiles(names, "", strFileExtension, NDFILES.getFileType(strFileExtension), size.ToString(), paths, context.User.Identity.Name); resultcode = "";
sb.Append("{\"resultcode\":" + "\"" + resultcode + "\"");
sb.Append(",");
sb.Append("\"errormsg\":" + "\"" + errormsg + "\"");
sb.Append(",");
sb.Append("\"datas\":" + "{");
sb.Append("\"FilePath\":" + "\"" + paths + "\"");
sb.Append(",");
sb.Append("\"FileName\":" + "\"" + names + "\"");
sb.Append(",");
sb.Append("\"FileTitle\":" + "\"" + title + "\"");
sb.Append(",");
sb.Append("\"FileGuid\":" + "\"" + FILEGUID + "\"");
sb.Append("}");
sb.Append("}");
}
else
{
resultcode = "";
errormsg = "不支持的文件类型:" + strFileExtension;
sb.Append("{\"resultcode\":" + "\"" + resultcode + "\"");
sb.Append(",");
sb.Append("\"errormsg\":" + "\"" + errormsg + "\"");
sb.Append(",");
sb.Append("\"datas\":" + "{");
sb.Append("\"FilePath\":" + "\"" + paths + "\"");
sb.Append(",");
sb.Append("\"FileName\":" + "\"" + names + "\"");
sb.Append(",");
sb.Append("\"FileTitle\":" + "\"" + title + "\"");
sb.Append(",");
sb.Append("\"FileGuid\":" + "\"" + FILEGUID + "\"");
sb.Append("}");
sb.Append("}");
}
context.Response.Write(sb.ToString());
}
}
}   

ASP.NET 一般处理程序 接收文件上传的更多相关文章

  1. Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现)(转)

    Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现) 相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要自己辛辛苦 ...

  2. ASP.NET Core 中的文件上传

    ASP.NET Core上传文件 ASP.NET Core使用IFormFile来读取上传的文件内容,然后将数据写入到磁盘或其它存储空间. 添加FileUpload模型,用来接收上传的文件内容. pu ...

  3. [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传

    原文 [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传 Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件 ...

  4. ASP.NET 中对大文件上传的简单处理

    在 ASP.NET 开发的过程中,文件上传往往使用自带的 FileUpload 控件,可是用过的人都知道,这个控件的局限性十分大,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的 ...

  5. [Asp.net]通过uploadify将文件上传到B服务器的共享文件夹中

    写在前面 客户有这样的一个需求,针对项目中文档共享的模块,客户提出如果用户上传特别的大,或者时间久了硬盘空间就会吃满,能不能将这些文件上传到其他的服务器?然后就稍微研究了下这方面的东西,上传到网络中的 ...

  6. ASP.NET MVC下使用文件上传

    这里我通过使用uploadify组件来实现异步无刷新多文件上传功能. 1.首先下载组件包uploadify,我这里使用的版本是3.1 2.下载后解压,将组件包拷贝到MVC项目中 3.  根目录下添加新 ...

  7. ASP.NET中的FileUpload文件上传控件的使用

    本篇文章教大家如何将客户端的图片或者文件上传到服务器: 无论是上传图片(.jpg .png .gif等等) 文档(word excel ppt 等等). 第一步:放入以下三个控件 Image控件,Fi ...

  8. ASP.NET:MVC中文件上传与地址变化处理

    目录 文件的上传和路径处理必须解决下面列出的实际问题: 1.重复文件处理 2.单独文件上传 3.编辑器中文件上传 4.处理文章中的图片路径 5.处理上传地址的变化 一.上传文件和重复文件处理 文件处理 ...

  9. asp.net.mvc 的单文件上传和多文件上传的简单例子

    首先打开vs2012,创建空的mvc4项目,名称为MVCStudy,选择基本模板

随机推荐

  1. kube-promethues监控告警详解(邮件、钉钉、微信、自研平台)

    Alertmanager已经在前面Prometheus初体验(三)已经介绍过了.现在介绍一下在kube-promethues里面怎么修改alertmanager配置文件,以及怎么通过各种媒介发送信息. ...

  2. .net core facebook 容易进的一个坑

    Microsoft.AspNetCore.Authentication.Facebook 库 services.AddAuthentication(CookieAuthenticationDefaul ...

  3. 人物-IT-李想:百科

    ylbtech-人物-IT-李想:百科 李想,1981年10月出生于河北石家庄,80后企业家代表人物.曾先后创立泡泡网.汽车之家,现任车和家创始人及CEO. 1998年还在上高中的李想就开始做个人网站 ...

  4. linux环境,无dig命令-bash: dig: command not found?

    背景描述: 今天使用dig命令,报错命令不存在,-bash: dig: command not found 解决: 通过yum方式安装 yum -y install bind-utils 备注:之前尝 ...

  5. WebGL学习笔记(四):绘图

    图元 WebGL可以绘制非常复杂的3D模型,这些模型都是由下面3种基本几何图元构成的,下面我们来详细的看看. 三角形 WebGL中任何复杂的模型,都是由三角形组合而成的,可以说三角形是任意形状的最小构 ...

  6. SDN实验---使用git安装Mininet

    0:补充Ubuntu截屏 截全屏 printscreen 截取当前窗口 alt + printscreen 截取任意矩形 shift + printscreen 截取全屏到剪切板 ctrl + pri ...

  7. svg的viewport和viewbox

    svg中视区重要的概念 1. viewport  视口,相当于显示器屏幕 2. viewbox   视区,相当于在屏幕上截取一小块,放大到整个屏幕,就是特写的效果 3. preserveAspectR ...

  8. Hadoop YARN:调度性能优化实践(转)

    https://tech.meituan.com/2019/08/01/hadoop-yarn-scheduling-performance-optimization-practice.html 文章 ...

  9. postman做接口测试 application/x-www-form-urlencoded 格式与json格式互转

    背景:用postman做接口测试可以使用application/x-www-form-urlencoded请求,也可以使用json请求,接口文档如下: 请求参数 字段 类型 是否必填 注释 websi ...

  10. spring boot 配置虚拟目录

    如上图,关键地方有两个: 1.下方的 web.upload-path (配置本地文件路径) 2.上方一串配置,具体代码如下: profiles: include: paperIdentify acti ...