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. Laravel模型事件的实现原理详解

    模型事件在 Laravel 的世界中,你对 Eloquent 大多数操作都会或多或少的触发一些模型事件,下面这篇文章主要给大家介绍了关于Laravel模型事件的实现原理,文中通过示例代码介绍的非常详细 ...

  2. Python之schedule用法,类似linux下的crontab

    # -*- coding: utf-8 -*- # author:baoshan import schedule import time def job(): print("I'm work ...

  3. 【转】SOA架构和微服务架构的区别

    SOA架构和微服务架构的区别 https://blog.csdn.net/zpoison/article/details/80729052

  4. 通过Onvif设备探索获取EasyNVR网页无插件播放所需要的摄像机硬盘录像机NVR的RTSP地址

    想实现网络监控摄像头进行视频直播的朋友门应该知道,方法其实非常简单,你不需要使用支持直播的网络摄像机,只需要经过一套流媒体服务器将监控摄像头的RTSP视频流转为RTMP\HLS\HTTP-FLV视频流 ...

  5. 复制pycharm虚拟环境

    我还是在内网进行开发,上篇讲了数据库驱动,方便链接数据库. 那么虚拟环境呢?那么多个包,离线下载………… 关键是我自己的笔记本也会进行交叉开发.一会儿在内网,一会儿在公网. 还是复制粘贴比较简单. 下 ...

  6. 阿里云移动推送 安卓项目添加SDK步骤

    Gradle的Emas服务插件会加载您下载的 aliyun-emas-services.json 文件.请修改工程的build.gradle使用该插件.配置步骤如下: 1. 修改项目级目录下build ...

  7. python实践项目九:操作文件-修改文件名

    描述:多个文件,文件名名包含美国风格的日期( MM-DD-YYYY),需要将它们改名为欧洲风格的日期( DD-MM-YYYY) 代码1:先创建100个文件名为美国风格日期的文件(文件路径为项目当前路径 ...

  8. LeetCode 872. 叶子相似的树(Leaf-Similar Trees)

    872. 叶子相似的树 872. Leaf-Similar Trees 题目描述 请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个叶值序列. LeetCode872. Leaf- ...

  9. 原生js监听input值发生变化

    原生JS中可以使用oninput,onpropertychange,onchange oninput,onpropertychange,onchange的用法 1) onchange 触发事件必须满足 ...

  10. [转帖]Linux教程(14)- Linux中的查找和替换

    Linux教程(14)- Linux中的查找和替换 2018-08-22 07:03:58 钱婷婷 阅读数 46更多 分类专栏: Linux教程与操作 Linux教程与使用   版权声明:本文为博主原 ...