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 = "";
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 一般处理程序 接收文件上传的更多相关文章
- Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现)(转)
Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现) 相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要自己辛辛苦 ...
- ASP.NET Core 中的文件上传
ASP.NET Core上传文件 ASP.NET Core使用IFormFile来读取上传的文件内容,然后将数据写入到磁盘或其它存储空间. 添加FileUpload模型,用来接收上传的文件内容. pu ...
- [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传
原文 [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传 Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件 ...
- ASP.NET 中对大文件上传的简单处理
在 ASP.NET 开发的过程中,文件上传往往使用自带的 FileUpload 控件,可是用过的人都知道,这个控件的局限性十分大,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的 ...
- [Asp.net]通过uploadify将文件上传到B服务器的共享文件夹中
写在前面 客户有这样的一个需求,针对项目中文档共享的模块,客户提出如果用户上传特别的大,或者时间久了硬盘空间就会吃满,能不能将这些文件上传到其他的服务器?然后就稍微研究了下这方面的东西,上传到网络中的 ...
- ASP.NET MVC下使用文件上传
这里我通过使用uploadify组件来实现异步无刷新多文件上传功能. 1.首先下载组件包uploadify,我这里使用的版本是3.1 2.下载后解压,将组件包拷贝到MVC项目中 3. 根目录下添加新 ...
- ASP.NET中的FileUpload文件上传控件的使用
本篇文章教大家如何将客户端的图片或者文件上传到服务器: 无论是上传图片(.jpg .png .gif等等) 文档(word excel ppt 等等). 第一步:放入以下三个控件 Image控件,Fi ...
- ASP.NET:MVC中文件上传与地址变化处理
目录 文件的上传和路径处理必须解决下面列出的实际问题: 1.重复文件处理 2.单独文件上传 3.编辑器中文件上传 4.处理文章中的图片路径 5.处理上传地址的变化 一.上传文件和重复文件处理 文件处理 ...
- asp.net.mvc 的单文件上传和多文件上传的简单例子
首先打开vs2012,创建空的mvc4项目,名称为MVCStudy,选择基本模板
随机推荐
- idea的maven工程中修改pom会改变项目jdk版本
解决办法 方案一 //pom中配置maven插件时候 <plugins> <!--jdk编译插件--> <plugin> <groupId>org.ap ...
- Oracle存储过程 函数 计算使用资源
目录 存储过程与函数 存储过程的优势 存储过程 打印语句 选择语句 函数 计算使用资源 存储过程与函数 存储过程的优势 存储过程 /* 多行注释 */ -- 单行注释 //展示错误信息 show er ...
- Spark2.x(五十六):Queue's AM resource limit exceeded.
背景: 按照业务需求将数据拆分为60份,启动60个application分别运行对每一份数据,application的提交脚本如下: #/bin/sh #LANG=zh_CN.utf8 #export ...
- egg.js搭建 api设置跨域
1.egg简述 Egg.js,为企业级框架和应用而生,是阿里开源的企业级 Node.js 框架. 2.特点 Egg 奉行『约定优于配置』,按照一套统一的约定进行应用开发,团队内部采用这种方式可以减少开 ...
- (1)PyCharm开发工具安装Flask并创建helloworld程序
一.环境描述 1.操作系统:windows7 2.编程语言:python3.6 下载地址:https://www.python.org/downloads/windows/ 3.虚拟化环境:virtu ...
- [python语法]python中如何判断一个集合是另一个集合的子集?
问:python中如何判断一个集合是另一个集合的子集? 答:用issubset()方法 语法: A.issubset(B) 返回: True 如果A是B的子集. False 如果A不是B的子集. 样例 ...
- laravel 解决 Please provide a valid cache path 问题
这是因为laravel的缓存路径没有找到 laravel缓存文件路径是在 config/cache.php中设置,默认存在storage文件夹中 解决: 创建目录: mkdir -p storage/ ...
- 取消Windows server 关机提示备注的方法
打开“开始”-“运行”,在“打开”一栏中输入“gpedit.msc”命令打开组策略编辑器,依次展开“计算机配置”→“管理模板”→“系统”,双击右侧窗口出现的“显示‘关闭事件跟踪程序’”,将“未配置”改 ...
- [LeetCode] 815. Bus Routes 公交路线
We have a list of bus routes. Each routes[i] is a bus route that the i-th bus repeats forever. For e ...
- [LeetCode] 875. Koko Eating Bananas 可可吃香蕉
Koko loves to eat bananas. There are N piles of bananas, the i-th pile has piles[i] bananas. The g ...