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,选择基本模板
随机推荐
- 【2019】Charles视频教程,接口测试工具最新教程
Charles 是在 windows/mac/linux下常用的网络封包截取工具,也是电商/直播/搜索/金融/H5/App等测试专用接口测试工具. Charles 支持Http/Https/Webso ...
- 大数据 | 分布式文件系统HDFS 练习
本次作业来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3292 利用Shell命令与HDFS进行交互 以”./bin/dfs ...
- java查看线程的堆栈信息
通过使用jps 命令获取需要监控的进程的pid,然后使用jstack pid 命令查看线程的堆栈信息. 通过jstack 命令可以获取当前进程的所有线程信息. 每个线程堆中信息中,都可以查看到线程ID ...
- mysql查询列定义,是否自增等
SELECT ORDINAL_POSITION AS Colorder, Column_Name AS ColumnName, data_type AS TypeName, COLUMN_COMMEN ...
- 错误详情:已取消该操作。--------- 在 System.Threading.CancellationToken.ThrowOperationCanceledException()
错误详情:已取消该操作.--------- 在 System.Threading.CancellationToken.ThrowOperationCanceledException() 在 Syste ...
- Jmeter获取 json字符的另外一种写法
在jmeter使用过程中,我们经常会看到接口返回数据类型为application/json,也就时我们常说的json格式. 而在功能测试时,我们经常会要对它的结果进行断言,确认结果是否与预期一致,有时 ...
- Python - Django - form 组件自定义校验
reg2.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- LeetCode_415. Add Strings
415. Add Strings Easy Given two non-negative integers num1 and num2 represented as string, return th ...
- C++之future和promise
future和promise的作用是在不同线程之间传递数据.使用指针也可以完成数据的传递,但是指针非常危险,因为互斥量不能阻止指针的访问:而且指针的方式传递的数据是固定的,如果更改数据类型,那么还需要 ...
- Photoshop如何自定义形状
Photoshop如何自定义形状,自定义形状定义一次,可以随便使用,而且形状无大小,填充后不会有像素问题,普通人可把常用的自定义成形状,很方便.PS中有一些自定义的形状,自己可以随便使用,但是不是很全 ...